Git:对本地合并分支的提交是否被推送到远程?

时间:2016-05-06 18:36:57

标签: git

假设我有以下git历史记录

          L1 - L2 - L3  <- Local branch
         /            \
A - B - C -- D -- E -- M <- master

其中L1,L2和L3在我的本地分支上提交,M是合并提交到master。

现在,当我将更改推送到远程时,本地分支中的提交是否会成为历史记录的一部分?换句话说,远程存储库中的历史记录将如上图所示,或者就像

一样
A - B - C - D - E - M <- master

另外:在快进合并的情况下会发生什么?

1 个答案:

答案 0 :(得分:1)

合并提交有两个父提交。你不能只从历史中删除本地分支的提交。没有L3就不能存在M,没有L2就不能存在L3,依此类推。这种完整性是Git的基础。因此,推送的master分支必然会看起来像一个图形,而本地分支上的提交将不会消失。

在快进合并中,没有什么特别的事情发生。历史是线性的。它不是真正的合并,它真的是#34;只是快进&#34;。 在您的示例中,假设没有提交D和E,您合并本地分支,然后历史记录变为:

A - B - C - L1 - L2 - L3 <- master

请注意,也没有M(没有合并提交)。