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

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

如果我想覆盖它们怎么办?

我试过像git pull-f这样的方法,但没有任何效果。

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


当前回答

git reset—hard&&git clean-df

警告:这将重置和删除所有未跟踪的文件。

其他回答

我从主人那里拉车时遇到了这种情况。

我使用Visual Studio处理它的方式;

首先,我对解决方案执行了撤销提交。然后我做了Git拉取过程。

希望这有帮助!

在最近的Git中,您可以添加-r/--rebase on pull命令,以在提取后将当前分支重新置于上游分支之上。警告应该会消失,但有可能会出现一些需要解决的冲突。


或者,您可以强制检查不同的分支,然后再次返回主分支,例如:

git checkout origin/master -f
git checkout master -f

然后像往常一样再次拉动:

git pull origin master

使用此方法可以节省时间,避免隐藏(git stash)和潜在的权限问题、重新设置文件(git reset HEAD--hard)、删除文件(gitclean-fd)等。

如果您想从工作副本中删除所有本地更改(包括未被git跟踪的文件),只需将其隐藏:

git stash push --include-untracked

如果你不再需要它们,你现在可以放下这些东西:

git stash drop

如果您不想隐藏已经暂存的更改(例如使用gitadd),那么添加选项--keep-index。然而,请注意,如果这些阶段性的更改与上游的更改发生冲突,这仍然会阻止合并。


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

提交您不想覆盖的所有内容,其余部分使用上面的方法。对于要覆盖的更改,请使用git checkout path/to/file/to/revert。确保文件未通过git reset HEAD path/to/file/to/revert暂存。

在拉取之前,您必须提交所有尚未提交的文件,这样您就不会从AS收到该消息。

有时,这些都不起作用。令人恼火的是,由于LF的事情,我认为,将工作的是删除文件,然后拉。我并不建议使用此解决方案,但如果文件不存在,git不会毫无用处地通知您,您的更改(甚至可能不是更改)将被覆盖,并允许您继续。

使用风险自负。