[TOC]
注意: 本文是根据 廖雪峰的官方网站的Git教程 的学习笔记
『第十节课』 分支管理-创建与合并分支
每次提交,master
分支都会向前移动一步,这样,随着你不断提交,master
分支的线也越来越长。
当我们创建新的分支,例如dev
时,Git新建了一个指针叫dev
,指向master
相同的提交,再把HEAD
指向dev
,就表示当前分支在dev
上。
假如我们在dev
上的工作完成了,就可以把dev
合并到master
上。Git怎么合并呢?最简单的方法,就是直接把master
指向dev
的当前提交。
合并完分支后,甚至可以删除dev
分支。删除dev
分支就是把dev
指针给删掉,删掉后,我们就剩下了一条master
分支。
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
git checkout
命令加上-b
参数表示创建并切换,相当于以下两条命令:
|
|
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
操作演示:
『第十一节课』解决冲突
操作演示:
使用 git log --graph --pretty=oneline --abbrev-commit
可以查看分之合并情况:
『第十二节课』Bug分支
Bug的出现可以通过新建临时的分支来修复Bug,修复之后,合并分支,然后将临时分支删除掉。
操作演示:
重点: 当手头工作没有完成时,先把工作现场
git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。
『第十三节课』Feature分支
当开发新功能的时候推荐使用Feature分支。在这个新建的Feature分支上开发,完成功能开发之后合并分支,最后将Feature分支删除掉。
如果要丢弃一个没有被合并过的分支,可以通过 git branch -D <name>
强行删除。
『第十四节课』多人协作
可以通过 git remote
命令查看远程仓库的信息;也可以通过 git remote -v
显示更详细的信息。如下图显示。
推送分支
可以通过命令 git push origin master
制定推送到远程仓库的对应远程分支。
注意:
master
分支是主分支,因此要时刻与远程同步dev
分支是开发分支,开发新功能都在这上面实现,所以也要时刻保持同步bug
分支主要记录着修复的bug分支,没必要同步feature
分支同步与否视情况而定,假如开发的功能和别人一起完成就需要同步到上面去
从远端仓库拉去代码
执行如下命令:
|
|
从远端仓库拉取的代码,,默认情况下,只能看到 master
分支,可以通过 git branch
命令查看:
|
|
当需要在 dev
分支上开发的时候, 需要先将 origin
的 dev
分支拉取到本地,命令如下:
git checkout -b dev origin/dev
当需要吧 dev
分支 push
到远端仓库的时候
|
|
总结:
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
;
从远程抓取分支,使用git pull
,如果有冲突,要先处理冲突。