提交哈希值不同于本地和远程

时间:2011-04-13 19:42:40

标签: git

我看到一些我的git-fu无法解释的行为。

本地分支最后提交永远不会出现在它正在跟踪的远程分支上。在本地没有做任何事情并且正在做:

$ git diff branch-name origin / branch-name

空出来 git pull也说我的分支已经是最新的。

似乎git pull已经产生了一个虚假提交(合并提交),但我无法弄清楚原因。 这一点非常重要,因为一旦git pull完成,我们需要我们的app服务器具有相同的提交哈希值。

我错过了什么明显的东西?任何可以帮助查明问题的额外信息是什么?

谢谢

1 个答案:

答案 0 :(得分:3)

正在发生的事情是您正在使用git pull隐含地执行git fetch && git merge origin/master(假设您在主分支上)。空提交实际上不是空的。如果你有冲突,你将不得不解决它们,然后添加文件并提交。现在差异将显示您的冲突解决方案。如果合并没有冲突,例如,当你在gitk中查看时,diff会显示任何内容。

要避免这种情况,请显式执行git fetch,然后将更改与远程分支合并或重新绑定(例如origin / master)。

你可以通过git pull --rebase进行拉动。如果需要,您还可以通过更改配置使其成为拉取的默认行为。

希望这会有所帮助。