假设我有以下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
另外:在快进合并的情况下会发生什么?
答案 0 :(得分:1)
合并提交有两个父提交。你不能只从历史中删除本地分支的提交。没有L3就不能存在M,没有L2就不能存在L3,依此类推。这种完整性是Git的基础。因此,推送的master
分支必然会看起来像一个图形,而本地分支上的提交将不会消失。
在快进合并中,没有什么特别的事情发生。历史是线性的。它不是真正的合并,它真的是#34;只是快进&#34;。 在您的示例中,假设没有提交D和E,您合并本地分支,然后历史记录变为:
A - B - C - L1 - L2 - L3 <- master
请注意,也没有M(没有合并提交)。