分支的创建和合并
单纯创建一个分支
git branch iss53 [<commit id>]
可以指定id来从某个节点创建分支。
创建分支并切换到那个分支
git checkout -b iss53
等同于
git branch iss53
git checkout iss53
在新分支上工作并提交新内容后,切换回master分支
git checkout master
注意:
- 切换分支前请把当前分支的未提交工作提交完
- 切换完成后,工作目录会切换到新分支的工作目录。
合并分支
git merge iss53
把别的分支内容合并到本分支。
删除被合并过的分支
git branch -d iss53
Fast Forward模式
A的一个分支B1想合并回A很简单,因为A是B1的直接祖先。只需指针右移即可。即【快进(fast forward)】的概念
关闭快进模式
快进模式是默认的,优点是简单方便,但是这样合并之后,会发现没有分支的痕迹。有时我们又需要记录这些合并操作。使用以下命令关闭
git merge --no-ff -m "有新commit节点生成,需要写此changelog" <被合并分支名>
三方合并
在前面的基础上即A产生一个分支B1,但是当A又继续提交变成A1时,B1要想跟A1进行合并。就不能简单快进合并了。需要同时对比 A 、A1、 B1进行三方合并。
合并冲突
当文件有冲突时,冲突文件不会合并,并等待你去解决冲突
查看合并冲突与查看工作区状态一样
git status
需要手工处理冲突,解决完冲突后,使用add存入暂存区
再使用commit命令完成最终的提交。