从master合并到git中的分支合并之间的区别

时间:2015-10-22 15:53:26

标签: git

假设我有一个分支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

2 个答案:

答案 0 :(得分:1)

在第一种情况下,b1将包含master的所有更改,但b1可能包含master以内的内容。

第二种情况 - 相反。

尝试在合并之前/之后查看日志中的不同组合:git log b1..mastergit log master..b1

答案 1 :(得分:1)

在合并之前,您的仓库看起来像

...-- * -- * -- * -- * master

...-- * -- * -- * -- * b1

git merge/rebase master之后,只有master由合并的历史记录组成:

-- * -- * -- * -- * -- * master
                      /
...-- * -- * -- * -- * b1

git merge/rebase b1之后,只有b1由合并的历史记录组成:

...-- * -- * -- * -- * master
                      \
-- * -- * -- * -- * -- * b1

可能想要第一个场景,你通常会在master分支,并希望包含所有以前合并的完整历史记录。但是,如果b1是一个长期存在的分支,您可能偶尔会进行第二次合并,以便b1master保持同步。