我在本地机器上做了一些更新,将它们推送到远程存储库,现在我试图将更改拉到服务器上,我得到了消息;

error: Your local changes to the following files would be overwritten by merge:
wp-content/w3tc-config/master.php
Please, commit your changes or stash them before you can merge.

所以我跑了,

git checkout -- wp-content/w3tc-config/master.php

再试一次,我得到了同样的信息。我假设w3tc更改了服务器上配置文件中的一些内容。我不关心本地副本或远程副本是否在服务器上(我认为远程副本是最好的),我只是希望能够合并我的其余更改(插件更新)。

什么好主意吗?


当前回答

对我来说,只有重新开始,努力工作。

承诺不是一个选项,因为没有什么可承诺的。

藏东西是不可能的,因为没有东西可以藏。

看起来它可能来自。git/info/exclude中的排除文件,并且git update-index——assume-unchanged <file>'ed了一些文件。

其他回答

在我的例子中,我备份然后删除Git抱怨的文件,提交,然后我终于能够签出另一个分支。

然后我替换文件,复制回内容并继续,就像什么都没有发生一样。

如果你在你的任何文件做了更改;

转到添加 。

然后;

Git commit -m "your message"

在此之后,你可以成功地从你的回购中获取或推入。

可能

git --rebase --autostash

将有助于

我尝试了第一个答案:得分最高的git stash,但错误消息仍然弹出,然后我找到了这篇文章来提交更改,而不是stash“勉强提交”

错误信息最终消失了:

1:去添加.

2: git commit -m "这是一个额外的提交"

3: git checkout the-other-file-name

然后就成功了。希望这个答案能有所帮助。

您不能与本地修改合并。Git保护您避免丢失潜在的重要更改。

你有三个选择:

使用以下命令提交更改 git commit -m我的信息 隐藏它。 存储就像一个堆栈,您可以在其中推送更改,并以相反的顺序弹出更改。 储存,键入 git藏 做合并,然后取出藏物: Git隐藏pop 丢弃局部更改 使用git重置——很难 或者git checkout -t -f remote/branch 或者:放弃特定文件的本地更改 使用git签出文件名