协慌网

登录 贡献 社区

我如何忽略 “git pull” 上有关本地更改将被合并覆盖的错误?

如何忽略有关 Git pull 的以下错误消息?

您对以下文件的本地更改将被合并覆盖

如果我覆盖它们怎么办?

我已经尝试过git pull -f类的东西,但是没有任何效果。

需要明确的是,我只想覆盖特定的更改,而不是所有内容。

答案

如果要从工作副本中删除所有本地更改(包括 git 未跟踪的文件),只需将它们存储起来即可:

git stash push --include-untracked

如果您不再需要它们,现在可以删除该存储:

git stash drop

如果您不想隐藏已经上演的更改(例如,使用git add ,则添加选项--keep-index 。但是请注意,如果这些分阶段的更改与上游的更改发生冲突,这仍将阻止合并。


如果只想覆盖本地更改的特定部分,则有两种可能性:

  1. 提交所有您不想覆盖的内容,其余使用上面的方法。

  2. 使用git checkout path/to/file/to/revert来覆盖您想要覆盖的更改。确保没有通过git reset HEAD path/to/file/to/revert

好的,在其他两个答案的帮助下,我提出了一个直接的解决方案:

git checkout HEAD^ file/to/overwrite
git pull

这适用于我覆盖所有本地更改,并且不需要身份:

git reset --hard
git pull