git 入门教程之分支总览
分支就是一条独立的时间线,既有分支,必有主干,正如一棵树谈到树枝,必有树干一样的道理.我们先前对git
的全部操作默认都是在主干上进行的,这个主干也是一种特殊的分支,名为 master
分支.
无论是穿越历史还是撤销更改,我们都或多或少接触过时间线,git
管理的版本串在一起就组成了这个时间线,其中master
分支是当前分支,HEAD
指向master
,因此HEAD
相当于指向了最新的版本.
基于分支上的操作,每一次 commit
都会提交一个新版本,并且新的 commit
指向原来的 commit
,这来最新的 commit
就可以往前找,直到找到最初的commit
.这就是 git
的时间线.
当我们打算开辟新的时间线时,git
在当前 HEAD
指向的 master
分支的 commit
处新建一个 dev
分支.如果主角没有主动进入时间线的话,那么仍然处于 master
分支,进入的方法就是 HEAD
指向新建的 dev
分支.
不考虑孙悟空的分身特效,主角不能同时处于不同的时空下,git
也是如何,HEAD
只能指向某一个 commit
,既然刚刚已经指向了 dev
分支,所以原来的 master
分支就没有 HEAD
了,因为相当于master
分支静止了.
当主角在 dev
分支独自闯荡干出一番事业时,决定回到故乡 master
分支,并将出门在外所学的本领带回家乡,建设美好家园.master
分支因为合并了 dev
分支,所以一下子增添了很多内容,家乡焕然一新!
主角这次携带 dev
分支归来,HEAD
分支自然又回到了 master
分支上,年轻的心向往外面的世间,相信不久后还会有同样的故事发生...
下面详解分支相关命令
创建分支
创建 dev
分支,列出分支已验证是否创建成功
# 创建分支 $git branch dev # 列出分支 $ git branch dev * master $
*
master
前面的 * 标记表明当前仍然处于master
分支
切换分支
切换到新分支以便在分支上开展工作
# 切换分支 $ git checkout dev Switched to branch 'dev' # 列出分支 $ git branch * dev master $
现在,我们在 dev
分支上奋笔疾书,先后提交两个版本后完成分支开发工作:
# 查看当前文件列表 $ ls LICENSE README.md test.txt # 查看目标文件内容 $ cat test.txt add test.txt see https://snowdreams1006.github.io/git/usage/remote-repository.html # 第一个版本: learn git branch $ echo "learn git branch" >> test.txt $ git add test.txt $ git commit -m "learn git branch" [dev 9c30e50] learn git branch 1 file changed, 1 insertion(+) # 第二个版本: see https://snowdreams1006.github.io/git/usage/branch-overview.html $ echo "see https://snowdreams1006.github.io/git/usage/branch-overview.html" >> test.txt $ git add test.txt sunpodeMacBook-Pro:git-demo sunpo$ git status On branch dev Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: test.txt $ git commit -m "see https://snowdreams1006.github.io/git/usage/branch-overview.html" [dev 413a4d1] see https://snowdreams1006.github.io/git/usage/branch-overview.html 1 file changed, 1 insertion(+)
此时,再从 dev
分支切换回 master
分支,合并dev
分支前看一下当前文件内容:
# 切换回 master 分支 $ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'. sunpodeMacBook-Pro:git-demo sunpo$ git status On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean # 查看当前文件列表 $ ls LICENSE README.md test.txt # 查看文件内容: 无 dev 分支更改 $ cat test.txt add test.txt see https://snowdreams1006.github.io/git/usage/remote-repository.html $
合并分支
切换回 master
分支并没有我们在 dev
分支的更改,因为两条时间线是独立的,现在合并 dev
分支,再看一下当前文件内容:
# 合并 dev 分支 $ git merge dev Updating b3d8193..413a4d1 Fast-forward test.txt | 2 ++ 1 file changed, 2 insertions(+) # 查看文件内容: 已经存在 dev 分支的更改! $ cat test.txt add test.txt see https://snowdreams1006.github.io/git/usage/remote-repository.html learn git branch see https://snowdreams1006.github.io/git/
删除分支
合并分支后,dev
分支的历史使命已经完成,应该及时清空不必要分支.
# 删除 dev 分支 $ git branch -d dev Deleted branch dev (was 413a4d1). # 列出当前分支: 只剩下 master 分支 $ git branch * master $
以上场景包括了分支的常用操作,创建分支(git branch <name>
),切换分支(git checkout <name>
),删除分支(git branch -d <name>
)一系列操作十分流畅,因此 git
鼓励我们大量使用分支!
小结
- 列出分支
git branch
- 创建分支
git branch <name>
- 切换分支
git checkout <name>
- 创建并切换分支
git checkout -b <name>
- 合并指定分支到当前分支
git merge <name>
- 删除分支
git branch -d <name>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Choerodon猪齿鱼实践之应用生命周期管理
Choerodon平台中的开发和部署都是围绕应用来进行的,那Choerodon平台中的应用有什么样的特性?又是怎样来进行管理的呢?本文旨在深入地介绍Choerodon平台中应用的功能特性及其生命周期的管理。 微服务架构中应用的特征 在谈起Choerodon平台中的应用时,就不得不提微服务。正是因为微服务的出现,之前的单体应用架构带来的问题才得以解决,具体问题如下: (1)耦合程度随时间推移而逐渐提高。 (2)扩展性差,冗余能力差 (3)模块划分不清晰,无法细化对系统资源的需求 (4)维护成本随着系统的日益臃肿而不断增加 而下图也更为直观地指出了单体应用架构与微服务架构的区别。 由此可见,微服务架构中的应用会被分解为更小、完全独立的组件,这使得它们拥有更高的敏捷性、可伸缩性和可用性。换句话说,微服务架构的基本思想就是“围绕业务领域组件来创建应用,让应用可以独立地开发、管理和加速。 Choerodon平台中应用生命周期的管理 由于Choerodon平台采用的是微服务架构,因此系统内每个功能模块均被解耦为多个应用,其中每个应用都支持独立地开发和独立地部署。而Choerodon平台中一个应用的...
- 下一篇
go get gitee.com上的私有库
用过go的同学都知道,go get公开库的时候,除了GFW的问题以外,其他时候基本无任何阻拦。但要get私有库,在正常情况下是不行的,需要额外进行一些操作。 在gitee.com的个人账户里添加公钥记录,添加完后,可以通过 ssh git@gitee.com 来检测是否有权限 在gitee.com创建新的私有库(private repo),自己增加代码等操作。 在git这一块加上如下设置 git config --global url."git@gitee.com:".insteadOf "https://gitee.com/" cat ~/.gitconfig ,只要发现有如下即可. [url "git@gitee.com:"] insteadOf = https://gitee.com/ go get -v gitee.com/{YourAccount}/repo 下载后,cd $GOPATH/src/gitee.com/{YouAccount} 看git remote信息,即可。倘若用的是go mod方式,去 $GOPATH/pkg/mod 目录下查看信息即可。 后记: 在使用g...
相关文章
文章评论
共有0条评论来说两句吧...