代码合并一般分两种情况rebase与merge
说明:如果div是从master创建出来的分支,那么,master就是dev的上游,dev是在master的下游。
下游合并上游的代码:要尽可能的保存提交路径简洁,那么用rebase
上游合并下游的代码:要尽可能的保存提交细节,那么采用merge
dev分支下:master已经有修改了,dev本身也做了提交,需要更新master代码才能做dev
下游合并上游,用rebase
git rebase master
dev分支下,需要合并到master上
上游合并下游,用merge
git checkout master git merge dev
回退到merge前的代码状态
# 查出要回退到merge前的版本号 git reflog # 回退到merge前的代码状态 git reset --hard # 回退到merge前的某个代码状态 git reset --hard f123456
merge使用问题
# 挡在Dev分支上使用merge的时候 $ git merge dev fatal: refusing to merge unrelated histories # 出现上述问题的时候 $ git merge master --allow-unrelated-histories # 在进行add、commit $ git add . $ git commit -m 'first'