笔记三:Git的简单使用(2)
三、Git分支
1.分支创建
$ git branch 分支名
这会在你当前所在的提交对象上创建一个指针。Git有一个名为 HEAD 的特殊指针,指向当前所在的本地分支,git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去。
2.分支切换
$ git checkout 分支名
HEAD指针会指向切换后的分支。
3.分支合并
$ git merge 分支名
会将HEAD指针所指向的分支与该分支合并。
4.删除分支
$ git branch -d 分支名
5.遇到冲突时的分支合并
有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。 Git 会暂停下来,等待你去解决合并产生的冲突。你可以在合并冲突后的任意时刻使用 git status 命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件:任何因包含合并冲突而有待解决的文件,都会以未合并状态标识出来。 Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。 出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html
这表示 HEAD 所指示的版本(也就是你的 master 分支所在的位置,因为你在运行 merge 命令的时候已经检出到了这个分支)在这个区段的上半部分 为了解决冲突,你必须选择使用两部分中的一个,或者你也可以自行合并这些内容。在你解决了所有文件里的冲突之后,对每个文件使用 git add 命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git 就会将它们标记为冲突已解决。
6.分支管理
git branch 命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表:
$ git branch
–merged 与 --no-merged 这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支。
如果要查看哪些分支已经合并到当前分支,可以运行 git branch --merged:
$ git branch --merged
查看所有包含未合并工作的分支,可以运行 git branch --no-merged:
$ git branch --no-merged