Git:忽略了一个文件,现在说有未合并的文件,无法拉动

时间:2017-08-09 10:14:40

标签: wordpress git

以前,我有WordPress'wp-config.php承诺;从那时起,我现在在.gitignore中忽略了这个文件,这很好。

不幸的是 - 现在拉到现场时,它提供了这个错误:

M   .htaccess
U   wp-config.php

Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

在这个问题发生之前,我遇到了一个问题,就是它说我对这些文件进行了未提交的更改 - 所以我让它覆盖它们,然后我通过FTP手动上传实际文件,这导致了这个新错误。

我希望将文件保持在实​​时服务器上的当前状态,但现在和将来都会解决此错误。

使用此功能可以提取最新更改的过程是什么?

1 个答案:

答案 0 :(得分:2)

更新 - 我在评论中提出问题的答案,并澄清相关要点

首先让我们澄清一点混淆:此错误与将文件放入.gitignore无关。实际上,由于文件存在于索引中,.gitignore对文件没有任何影响。

  

在这个问题发生之前,我遇到了一个问题,就是它说我对这些文件进行了未提交的更改 - 所以我让它覆盖它们

您可能需要更清楚自己发布的命令以及所看到的输出,因为这是您遇到麻烦的地方。

当你说你&#34;让它覆盖他们&#34;时,这是什么意思? git拒绝覆盖本地更改(尤其是未提交的更改)...

我猜测实际发生的事情是git尝试将远程仓库中的更改合并到这些文件的本地更改中,但wp-config.php上存在合并冲突。

并且很可能它仍然处于合并状态,在您继续前进之前,您必须解决这个问题。如果你说git status它可能会告诉你你正在合并,有些变化会被提交并且#34; (可能包括.htaccess文件)和一些&#34;未合并的路径&#34; (可能包括.php文件)。

如果.php文件在工作树中按照您希望的方式显示,那么您可以说git add wp-config.php然后git commit,这将导致合并完成。 (更一般地说,你必须让文件看起来如何在索引中找到它,并以告诉git解决冲突的方式执行此操作;然后你可以提交退出合并状态。)

现在你在评论中询问是否会将文件&#34;返回&#34;进入git。这归结为它意味着让.php文件看起来像你想要的那样&#34;。

如果您从不希望git提供.php文件(即使在新的克隆期间),那么您需要将其从索引和后续提交中删除。

您可以(至少暂时)从工作树中删除该文件,然后执行git add(如上所述)。或者,如果您不想影响工作树版本,则可以

git rm --cached wp-config.php

直接使索引看起来&#34;你想要它&#34;。此时,您的.gitignore条目可以帮助您避免意外重新引入文件。

如果你的意思是文件应该在那里,但只有一个默认版本应该在repo中(不会在工作树中进行任何更改),git赢了&# 39;那样做。你必须得到以不同方式前往的地方。例如,您可以将文件放在repo中wp-config.php.default并忽略wp-config.php路径。克隆回购后,您将复制默认文件,并且只对被忽略的副本进行任何本地更改。