显示所有分支
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git branch * master |
增加分支
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git branch b1 |
切换分支
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git checkout b1 Switched to branch 'b1'
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ |
切换到不同的分支对 helloworld.naxsu 这个文件进行修改并提交,并查看他们的内容
原先 helloworld.naxsu 的内容是
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ cat helloworld.naxsu hello world add something |
在 b1 分支修改并提交,然后查看文件内容
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ vim helloworld.naxsu
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ git commit -a -m "b1 update helloworld.naxsu" warning: LF will be replaced by CRLF in helloworld.naxsu. The file will have its original line endings in your working [b1 warning: LF will be replaced by CRLF in helloworld.naxsu The file will have its original line endings in your working b9c5de1] b1 update helloworld.naxsu warning: LF will be replaced by CRLF in helloworld.naxsu. The file will have its original line endings in your working 1 file changed, 1 insertion(+)
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ git status # On branch b1 nothing to commit (working directory clean)
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ cat helloworld.naxsu hello world add something b1 branch add something |
切换到 master 分支,进行和上面一样的操作
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ git checkout master Switched to branch 'master' Your branch is ahead of 'origin/master' by 7 commits.
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ vim helloworld.naxsu
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git commit -a -m "master update helloworld.naxsu" [master d9f15c9] master update helloworld.naxsu 1 file changed, 1 insertion(+)
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ cat helloworld.naxsu hello world add something master branch add something |
从中可以看出两个分支是没有影响的。
##########NextPage##########
列出各分支之间的信息
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git show-branch ! [b1] b1 update helloworld.naxsu * [master] master update helloworld.naxsu -- * [master] master update helloworld.naxsu + [b1] b1 update helloworld.naxsu +* [master^] delete test.naxsu |
比较 master 和 b1 这两个分支文件的不同
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git diff master b1 diff --git a/helloworld.naxsu b/helloworld.naxsu index 9e73a56..7929722 100644 --- a/helloworld.naxsu +++ b/helloworld.naxsu @@ -1,3 +1,3 @@ hello world add something -master branch add something +b1 branch add something |
分支合并 merge
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git merge "merge" HEAD b1 Auto-merging helloworld.naxsu CONFLICT (content): Merge conflict in helloworld.naxsu Automatic merge failed; fix conflicts and then commit the result. |
显示自动合并失败,我们看一下状态,可以看到 helloworld.naxsu 被两个分支修改过了
huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING) $ git status # On branch master # Your branch is ahead of 'origin/master' by 8 commits. # # Unmerged paths: # (use "git add/rm ..." as appropriate to mark resolution) # # both modified: helloworld.naxsu # no changes added to commit (use "git add" and/or "git commit -a") |
我们来看一下 helloworld.naxsu 的内容
huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING) $ cat helloworld.naxsu hello world add something <<<<<<< HEAD master branch add something ======= b1 branch add something >>>>>>> b1 |
把们用 vim 编辑工具人为的把冲突去掉,然后保存、提交,切换到其他分支,也可以看到没有冲突了
huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING) $ vim helloworld.naxsu
huangyineng@HUANGYINENG-PC ~/hello-world (master|MERGING) $ git commit -a -m "merging" [master 34908f4] merging
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ cat helloworld.naxsu hello world add something master branch add something b1 branch add something
huangyineng@HUANGYINENG-PC ~/hello-world (master) $ git checkout b1 Switched to branch 'b1'
huangyineng@HUANGYINENG-PC ~/hello-world (b1) $ cat helloworld.naxsu hello world add something b1 branch add something |
另一种合并的做法,自行去查帮助文档:
$ git checkout master
$ git pull . b1
本文链接: http://www.656463.com/portal.php?mod=view&aid=7 2 ,转载请注明出处
下一节: 标签