1

就在将本地更改推送到远程存储库之前,git 总是要求我们将本地分支与远程分支同步。为此,我先做 git pull,然后提交拉取的更改,最后再推送。

这种方法的问题是,git 将拉入的文件与我现有的更改合并,并且将来当我试图弄清楚我在该特定提交上做了什么时,我所做的和合并的拉取之间没有明显的区别。

我希望有一个干净的历史记录,即我的提交总是应该有/只显示我添加的那些更改,而不是由于拉取而合并的那些更改。

对于这个问题,我能想到的一种解决方案是为给定的远程分支设置两个本地分支。(1) 用于您的更改,(2) 用于与遥控器同步,当需要推送时,先将 (2) 与遥控器同步,然后将 (1) 与 (2) 合并,然后从 (2) 推送

关于如何拥有干净的历史记录还有其他建议吗?

4

1 回答 1

3

在推送到远程存储库(您的本地提交)之前,您应该执行

git fetch origin

获取对存储库所做的所有更改(origin 只是一个示例名称)。之后,做一个

git rebase origin/remote-branch

为了将您的本地分支重新设置在原始/远程分支之上。

如果文件在本地和存储库中都发生了更改,则必须在此处修复合并问题。如果rebase顺利完成,您就可以推动:

git push origin local-branch

这将保持一个干净的直 git 分支。

于 2013-03-04T19:09:13.297 回答