如何解决提交哈希与本地和远程哈希不同
| 我看到我的git-fu无法完全解释的某些行为。 本地分支的最后一次提交永远不会出现在它正在跟踪的远程分支上。在本地没有做出任何承诺,并且正在做: $ git diff分支名称origin / branch-name 空了git pull
还表示我的分支机构已更新。
看来git pull已经生成了一个伪造的提交(合并提交),但是我不太清楚为什么。
这一点特别重要,因为一旦git pull完成,我们需要我们的应用服务器具有相同的提交哈希。
有什么明显的我想念的地方吗?是否有任何其他信息可以帮助您确定问题所在?
谢谢
解决方法
发生的是您正在使用
git pull
,它隐式地执行git fetch && git merge origin/master
(假设您在master分支上)。空提交实际上并不为空。如果您有冲突,则必须解决它们,然后添加文件并提交。现在差异将显示您的冲突解决方案。如果合并没有冲突,例如,当您在gitk中查看差异时,差异不会显示任何内容。
为避免这种情况,请显式执行“ 3”,然后使用远程分支(例如origin / master)合并或更改您的更改。
您可以用git pull --rebase
进行拉底。如果需要,还可以通过更改配置使它成为拉取的默认行为。
希望这可以帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。