首先,我们创建dev分支,然后切换到dev分支:
1 $ git checkout -b dev 2 Switched to a new branch 'dev'
git checkout 命令加上 -b 参数表示创建并切换,相当于一下两条命令
$ git branch dev $ git checkout dev Switched to branch 'dev'
然后用 git branch命令查看当前分支:
1 $ git branch 2 * dev 3 master
git branch命令会列出所有分支,当前分支前面会标一个 * 号
然后我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:
Creating a new branch is quick.
然后提交
$ git add readme.txt $ git commit -m "branch test"
现在,dev分支的工作完成,我们就可以切回master分支:
$ git checkout master Switched to branch 'master'
切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了,因为刚才提交的是在dev分支上的,而master分支此刻的提交点并没有变。
接着我们把dev分支的工作成果合并到master分支上:
$ git merge dev Updating d46f35e..b17d20e Fast-forward readme.txt | 1 + 1 file changed, 1 insertion(+)
git merge 命令用于合并指定分支到当前分支,合并后,再查看 readme.txt 的内容,就可以看到和dev分支的最新提交是完全一样的。
注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。
当然也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。
合并完成后,我们就可以放心的删除dev分支了。
$ git branch -d dev
Deleted branch dev (was b17d20e).
删除后,查看branch,就只剩下master分支了。
$ git branch
* master
switch
我们注意到切换分支使用 git checkout <branch>,而前面讲过的撤销修改则是 git checkout -- <file>,同一个命令,有两种作用,确实有点另人模糊。
实际上切换分支这个动作,用switch更科学。因此新版本git 提供了新的 git switch命令来切换分支:
创建并切换到新的dev分支,可以使用:
$ git switch -c dev
直接切换到已有的master分支,可以使用:
$ git switch master
使用新的git switch命令,比git checkout 更容易理解。
小结
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name> 或 git switch <name>
创建+切换分支:git checkout -b <name> 或者 git switch -c <name>
合并某分支到当前分支: git merge <name>
删除分支: git branch -d <name>