git学习——分支

分支

创建分支:git branch 如:git branch testing 

Git通过HEAD指针知道用户是在哪一个分支上工作。

git学习——分支

切换分支用git checkout命令,注意:可以用git status 查看现在是处于哪一个分支

如:$ git checkout testing

 git学习——分支

如果此时再提交一次:

$ vim test.rb
$ git commit -a -m 'made a change'

git学习——分支

可以再次用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 的执行情况如下(第一张图片为合并前,第二长图片是合并后):

git学习——分支          git学习——分支

此时hotfix可以删除; 删除命令:git branch -d hotfix

 

合并的另一种方式:

git学习——分支git学习——分支

此时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 强制执行。

 远程分支

 ......

 

 

你可能感兴趣的:(git)