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

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 stash,但错误消息仍然弹出,然后我找到了这篇文章来提交更改,而不是stash“勉强提交”

错误信息最终消失了:

1:去添加.

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

3: git checkout the-other-file-name

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

其他回答

在拉之前要求提交

git stash git pull pull origin << branch >

如有需要:

Git stash应用

如果你正在使用Git扩展,你应该能够在工作目录中找到你的本地更改,如下所示:

如果您没有看到任何变化,可能是因为您在错误的子模块上。所以检查所有的项目与潜艇图标如下所示:

当你发现一些未提交的更改:

选择带有工作目录的行,导航到Diff选项卡,右键单击带有铅笔(或+或-)图标的行,选择重置以第一次提交或提交或隐藏或任何你想做的事情。

在我的NestJS项目中,我在.env文件中遇到了类似的问题。

尝试了很多方法,包括本页上的方法。

最后,在剪贴板上复制。env的内容,删除文件,git拉起工作!

重新创建.env并将内容粘贴回来。

如果有多个文件,只需将它们临时移出git回购目录,然后在拉出更改后将它们移回。

警告:这将删除未跟踪的文件,所以它不是这个问题的一个很好的答案。

以我为例,我不想保留这些文件,所以这对我来说很有效:

Git 2.11及更新版本:

git clean  -d  -fx .

较旧的 Git:

git clean  -d  -fx ""

参考:http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

-x意味着被忽略的文件以及git不知道的文件也会被删除。 -d表示除未跟踪的文件外,还删除未跟踪的目录。 -f命令用于强制运行。

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

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

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

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