如何拥有干净的git历史

时间:2013-03-04 19:04:11

标签: git git-merge git-push git-pull github-api

在将本地更改推送到远程存储库之前,git总是要求我们将本地分支与远程分支同步。为了实现这一点,我首先执行git pull,然后提交拉动的更改,最后再推送。

这种方法的问题是,git将拉入的文件与我现有的更改合并,将来当我试图找出我在该特定提交中所做的事情时,我所做的和所做的事情之间没有明确的区别拉合并。

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

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

关于如何获得干净历史的任何其他建议?

1 个答案:

答案 0 :(得分:3)

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

git fetch origin

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

git rebase origin/remote-branch

为了在原点/远程分支上重新定位本地分支。

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

git push origin local-branch

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