12. 分支管理场景
多人协同工作时,你在优化代码X,需要较长时间才能完成,未完成之前会影响整体代码的使用.于是写完的代码不能提交到版本库,提交就会影响别人使用整体的代码.不提交你就失去了git的版本管理功能.
于是需要分支,为你正在修改的代码建立分支,别人看不到.而你在自己的分支上工作,最后完成再合并到原来的分支
13. 创建与合并分支
13.1. 场景
在Git中,版本控制是靠指针.每个分支都有一个专用的指针.同时有一个HEAD指针指向主版本.实现的时候HEAD指针实际上是指向分支指针的,再由分支指针指向分支.每次有commit就相当于有了新的分支版本.但是一个分支的不同版本只有一个分支指针.
建立新分支其实就是新建了一个分支指针X并把HEAD指向这个分支指针,这样你的修改就都在这个分支上而不会影响主版本A的修改.
在完成修改之后再把分支X和原主版本A合并
13.2. 创建新分支
$ git checkout -b dev Switched to a new branch 'dev' 相当于 $ git branch dev $ git checkout dev Switched to branch 'dev'
13.3. 查看所有分支(其中*对应的就是HEAD指向的当前版本
$ git branch * dev master
这时修改文件,add commit之后修改的就是生成了dev分支的新版本.不会影响master
13.4. 切换分支
$ git checkout master Switched to branch 'master'
将当前分支变成master,dev依然存在
13.5 合并dev与master
$ git merge dev Updating d17efd8..fec145a Fast-forward readme.txt | 1 + 1 file changed, 1 insertion(+)
将dev与当前HEAD指向的版本库合并.目测这种合并是选择了两个分支中最新的内容.
13.6. 删除分支
$ git branch -d dev
Deleted branch dev (was fec145a).