分支
创建分支:git branch 如:git branch testing
Git通过HEAD指针知道用户是在哪一个分支上工作。
切换分支用git checkout命令,注意:可以用git status 查看现在是处于哪一个分支。
如:$ git checkout testing
如果此时再提交一次:
$ vim test.rb
$ git commit -a -m 'made a change'
可以再次用git checkout master切换到分支master.
分支的新建与合并
分支的新建和切换一次性完成:git checkout -b [name]==>git branch [name]; git checkout [name]
注意在切换分支时留心你的暂存区或者工作目录里,那些还没有提交的修改,它会和你即将检出的分支产生冲突从而阻止 Git 为你切换分支。切换分支的时候最好保持一个清洁的工作区域。稍后会介绍几个绕过这种问题的办法(分别叫做 stashing 和 commit amending)。
分支的合并:git merge [文件名]
注意:git checkout master 然后 git merge hotfix 的执行情况如下(第一张图片为合并前,第二长图片是合并后):
此时hotfix可以删除; 删除命令:git branch -d hotfix
合并的另一种方式:
此时iss53也可以删除。
遇到冲突时的合并
有时候合并操作并不会如此顺利。如果在不同的分支中都修改了同一个文件的同一部分,Git 就无法干净地把两者合到一起(译注:逻辑上说,这种问题只能由人来裁决。)
Git 作了合并,但没有提交,它会停下来等你解决冲突。要看看哪些文件在合并时发生冲突,可以用 git status
查阅:
(具体细节可查看:http://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6)
分支的管理
查看当前分支和所有分支:git branch
查看各个分支最后一个提交对象的信息,运行 git branch -v
查看与当前分支合并了的分支:git branch --merged
查看与当前分支没有合并的分支:git branch --no-merged
如果对没有合并进来的分支进行git branch -d (删除)操作,查看各个分支最后一个提交对象的信息,所以
Git会报错。
不过,如果你确实想要删除该分支上的改动,可以用大写的删除选项 -D
强制执行。
远程分支
......