Git分支操作
Git分支操作
分支的本质
分支的本质是指向commit
的引用(指针)
- 可通过
git branch
命令查看分支
创建分支
只创建分支,不切换过去
$ git branch <分支名> <所基于commit>
- 不带
<所基于commit>
参数时默认从距当前最近的commit创建分支
创建分支的同时切换到新分支
$ git checkout -b <分支名>
切换分支
- 切换分支前必须先
git status
保证工作区是干净的(先add,,commit)
$ git checkout <分支名>
- 可用
git log <分支名>
查看该分支的log
合并分支
- 先切换到主干分支,再吸收被合并吸收的分支
$ git checkout <主干分支>
$ git merge <被合并吸收的分支>
合并时有冲突的情况
例:初始a.txt中内容为:
hh
切换到bugfix
分支并将a.txt内容改为:
hha
切换到master
分支并将a.txt中内容改为:
hhh
合并有冲突的分支步骤如下:
-
用命令
git merge <分支名>
,令master
分支吸收bugfix
分支:$ git merge bugfix Auto-merging a.txt CONFLICT (content): Merge conflict in a.txt Automatic merge failed; fix conflicts and then commit the result.
此时a.txt中变成:
<<<<<<< HEAD hhh ======= hha >>>>>>> bugfix
-
需手动编辑共同修改的文件,处理被
<<<<< ...(主干分支) ===== >>>>> ...(被吸收分支)
包裹的内容
-
最后再将手动修改后的文件
add
和commit
- 可用
git log --graph
命令直观地查看分支合并过程
删除分支
$ git branch -d <分支>
- 删除分支不会删除其commit(删除指针不会删除指针所指对象)