假设我有一个分支b1,完成了我的开发,推到了远程,我想合并到远程master.I只是徘徊有什么区别
git fetch
git checkout b1
git merge/rebase master
git push master
和
git fetch
git checkout master
git merge/rebase b1
git push master
答案 0 :(得分:1)
在第一种情况下,b1
将包含master
的所有更改,但b1
可能包含master
以内的内容。
第二种情况 - 相反。
尝试在合并之前/之后查看日志中的不同组合:git log b1..master
,git log master..b1
。
答案 1 :(得分:1)
在合并之前,您的仓库看起来像
...-- * -- * -- * -- * master
...-- * -- * -- * -- * b1
在git merge/rebase master
之后,只有master
由合并的历史记录组成:
-- * -- * -- * -- * -- * master
/
...-- * -- * -- * -- * b1
在git merge/rebase b1
之后,只有b1
由合并的历史记录组成:
...-- * -- * -- * -- * master
\
-- * -- * -- * -- * -- * b1
你可能想要第一个场景,你通常会在master
分支,并希望包含所有以前合并的完整历史记录。但是,如果b1
是一个长期存在的分支,您可能偶尔会进行第二次合并,以便b1
与master
保持同步。