首页 > 解决方案 > git pull 如何管理提交历史?

问题描述

假设我克隆了一个远程存储库,到目前为止它有 1 个 commit => A。然后,我对我的本地分支进行了两次提交,所以它变成了 => A - B - C。但是,我的同事同时向他们的本地分支提交了另外两个提交,所以他们的提交历史变成了 => A - D - E。然后他们将其推送到远程存储库。

然后我意识到我想推送我的更改,但git push告诉我远程存储库在我前面。所以,我愿意git pull

我的问题是,现在跟踪远程跟踪分支的本地分支是什么样的?我知道会有合并冲突,但我的实际问题是:提交历史会是什么样子?

更具体地说,假设我修复了冲突并现在提交了它们,我的提交历史会看起来像这样A - D - E - F还是A - B - C - D - E - F?git中的提交历史是非线性的吗?

标签: gitgithubversion-controlpulltree-conflict

解决方案


是的,如果是正常拉动,将与 2 个父分支合并......所以你将有两个平行的分支,比如说。用 来看看结果git log --all --graph。作为旁注:冲突不是强制性的。他们出现的原因有很多,但在合并时并不是给定的。您可能会经常使用无冲突的合并。


推荐阅读