我在本地机器上做了一些更新,将它们推送到远程存储库,现在我试图将更改拉到服务器上,我得到了消息;
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 pull origin master -r
所以它会在取回后把你当前的分支应用到上游的分支上。
这相当于:checkout master, fetch和rebase origin/master git命令。
这是一种潜在危险的操作方式。它重写了历史,这不是一个好兆头,因为你已经出版了那段历史。除非你仔细阅读了git-rebase(1),否则不要使用这个选项。
结帐
如果你不关心你的局部变化,你可以暂时切换到其他分支(强制),然后切换回来,例如。
git checkout origin/master -f
git checkout master -f
重置
如果您不关心您的本地更改,尝试将其重置为HEAD(原始状态),例如。
git reset HEAD --hard
如果上面没有帮助,它可能是你的git规范化文件(.gitattributes)中的规则,所以最好提交它所说的。或者你的文件系统不支持权限,所以你必须在git配置中禁用filemode。
相关:我如何强制“git拉”覆盖本地文件?