繁体   English   中英

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

[英]Git: Ignored a file, now says there's unmerged files and can't pull

以前,我已经提交了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手动上传实际文件,这导致了这个新错误。

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

能够进行最新更改的过程是什么?

更新 -我在评论中提出的问题添加答案,并阐明相关要点


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

在发生此问题之前,我遇到了一个问题,即将这些文件撤消到我尚未提交的更改的位置,因此我将其覆盖

您可能需要更清楚地了解发出的命令和看到的输出,因为这是麻烦的出处。

当您说“让它覆盖它们”时,这是什么意思? git拒绝覆盖本地更改(尤其是未提交的更改)...

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

而且很可能它仍处于合并状态,在继续操作之前必须解决该状态。 如果您说git status它可能会告诉您您正在合并,其中一些更改要“提交”(可能包括.htaccess文件)和一些“未合并的路径”(可能包括.php文件)。

如果您的.php文件在工作树中看起来像您想要的样子,那么您可以说git add wp-config.php ,然后说git commit ,这将导致合并完成。 (更一般而言,您必须使文件看上去像在索引中的样子,并以一种告诉git解决了冲突的方式执行此操作;然后您可以承诺退出合并状态。)

现在,在注释中,您询问是否会将文件“返回”到git中。 这归结为“使.php文件具有所需的外观”的含义。

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

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

git rm --cached wp-config.php

直接使索引看起来像“您想要它”。 此时,您的.gitignore条目将有可能帮助您避免意外重新引入文件。

如果您的意思是该文件应该存在,而存储库中仅应包含默认版本(不对工作树进行任何更改),则git不会这样做。 您必须以不同的方式到达目的地。 例如,您可以将文件作为wp-config.php.default放入存储库中,而忽略wp-config.php路径。 克隆存储库后,您将复制默认文件,并且仅对忽略的副本进行任何本地更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM