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

Arm*_*man 2 git github merge-conflict-resolution

我在git上的例程一直很简单:

git add -A
git commit -m 'the changes I made'
git pull
# resolve conflicts
git push
Run Code Online (Sandbox Code Playgroud)

然而,由于一些未知的原因,尽管与起源有很多冲突,但在拉动之后,我没有任何冲突,如果没有我的许可,它会强制更新我的本地副本.这些内容:'2个文件已更改,2个插入(+),6个删除( - )'.但在我的情况下,冲突不应该通过简单的合并来解决,并且需要从我这边手动解决冲突.为什么git不让我做手动冲突解决?提前致谢!注意:我的git命令都没有强制选项-f

Chr*_*her 5

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

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

git fetch ;# fetch the remote changes
git diff HEAD origin/<branch> ;# diff your local branch with the remote's copy of <branch>
Run Code Online (Sandbox Code Playgroud)

来自的输出git diff应该让你了解正在发生的事情.如果您想进一步关注它,请尝试git merge --no-commit origin/<branch>,然后发出git diff --cached.这将自动显示git自动合并的变化,并且应该允许您确定什么是什么.