Git 没有显示任何冲突,并且正在覆盖我的本地副本

标签 git github merge-conflict-resolution

我在git上的套路一直很简单:

git add -A
git commit -m 'the changes I made'
git pull
# resolve conflicts
git push

然而,由于某些未知原因,尽管与源有很多冲突,但在 pull 后,我没有得到任何冲突,并且在未经我许可的情况下强制更新我的本地副本。类似这样的内容:“2 个文件已更改,2 个插入 (+),6 个删除 (-)”。但就我而言,冲突不应该通过简单的 merge 来解决,而应该需要我这边手动解决冲突。为什么 git 不让我手动解决冲突?提前致谢! 注意:我的 git 命令都没有强制选项 -f

最佳答案

git pull没有参数或多或少等同于 git fetch && git merge origin/<upstream_branch> .通过使用 pull而不是 fetchmerge ,您允许 git 尝试 merge 到您的本地分支。如果 merge 没有发生冲突,您的本地将看起来是“强制更新”,因为它能够在没有您干预的情况下解决您文件的远程版本与您自己的版本之间的差异。

在没有看到代码的情况下调试正在发生的事情有点困难,但试试这个:

git fetch ;# fetch the remote changes
git diff HEAD origin/<branch> ;# diff your local branch with the remote's copy of <branch>

git diff 的输出应该让您了解正在发生的事情。如果您想进一步了解它,请尝试 git merge --no-commit origin/<branch> , 然后发出 git diff --cached .这将准确地向您显示 git 自动 merge 了哪些更改,并且应该允许您确定什么是什么。

关于Git 没有显示任何冲突,并且正在覆盖我的本地副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368811/

相关文章:

Git merge 仅在 pom.xml 中的版本标记上发生冲突

jquery - GitHub Slider JQuery 插件

PDF to Github Flavored Markdown

javascript - 包含node_modules/文件夹以推送到 gh-pages 分支

git - SourceTree - rebase --interactive - merge 冲突中止 rebase

git - 如何修复由于删除分支中的文件而导致的 merge 冲突?

ruby-on-rails - 将 Gem 'wdm' 添加到您的 GemFile

git - merge 操作错误。我该如何修复它?

git - 如何 merge 父分支?

git - GitLab 是否通过 git-annex 或其他方式支持大文件?