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

Git 提交哈希不同于本地哈希和远程哈希,git,Git,我看到一些行为,我的吉特福无法解释 本地分支上次提交从未出现在它正在跟踪的远程分支上。没有在当地做出任何承诺,并且正在做: $git diff分支名称来源/分支名称 空出来 git pull还说我的分支已经更新了 git pull似乎生成了一个虚假的提交(合并提交),但我不太明白为什么。 这一点特别重要,因为一旦git pull完成,我们需要我们的应用服务器具有相同的提交散列 有什么明显的我遗漏的吗?是否有任何额外的信息可以帮助确定问题所在 谢谢发生的事情是,您正在使用git pull,它隐式地

我看到一些行为,我的吉特福无法解释

本地分支上次提交从未出现在它正在跟踪的远程分支上。没有在当地做出任何承诺,并且正在做:

$git diff分支名称来源/分支名称

空出来
git pull
还说我的分支已经更新了

git pull似乎生成了一个虚假的提交(合并提交),但我不太明白为什么。 这一点特别重要,因为一旦git pull完成,我们需要我们的应用服务器具有相同的提交散列

有什么明显的我遗漏的吗?是否有任何额外的信息可以帮助确定问题所在


谢谢

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

为了避免这种情况,请显式地执行一个
git fetch
,然后将您的更改与远程分支(例如origin/master)合并或重新设置基础

您可以通过git pull--rebase让pull做一个rebase。如果需要,还可以通过更改配置使其成为pull的默认行为


希望这有帮助。

试试
git日志来源/分支名称分支名称