代码合并一般分两种情况rebase与merge

说明:如果div是从master创建出来的分支,那么,master就是dev的上游,dev是在master的下游。

下游合并上游:要尽可能的保存提交路径简洁,那么用rebase

上游合并下游:要尽可能的保存提交细节,那么采用merge

 

dev分支下:master已经有修改了,dev本身也做了提交,需要更新master代码才能做dev

下游合并上游,用rebase





1




git rebase master



dev分支下,需要合并到master上

上游合并下游,用merge





1


2


3




git checkout master


 


git merge dev



回退到merge前的代码状态





1


2


3


4


5


6




# 查出要回退到merge前的版本号


git reflog


# 回退到merge前的代码状态


git reset --hard


# 回退到merge前的某个代码状态


git reset --hard f123456



 merge使用问题





1


2


3


4


5


6


7


8




# 挡在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'