Git重置恢复被忽略的文件?

时间:2017-04-20 09:05:13

标签: git

我的wp-config.php在git之下,现在我想忽略它。

我已将其添加到.gitignore,提交了新的.gitignore和。{ 然后执行 git update-index --assume-unchanged -- wp-config.php

现在,当我执行git reset --hard时,wp-config.php文件已恢复,但我希望它忽略它...它仍然是从git重新获取的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

.gitignore仅适用于未跟踪的文件。只要跟踪文件(添加到索引),.gitignore就无法生效。如果您希望.gitignore生效,则需要从存储库中删除该文件。

--assume-unchanged是一个非常危险的选择,特别是如果你不知道它意味着什么。您没有告诉Git不要触摸该文件,但是您告诉它该文件没有变化,无论它在内容中找到什么。这意味着,如果你切换分支或者你使用重置或类似的东西,Git假定文件没有改变,并愉快地覆盖你对文件所做的任何本地更改,它通常会警告你并拒绝覆盖可能会丢失的更改否则。

没有安全方式告诉Git忽略已经跟踪的文件的更改,因为这与跟踪文件的感觉有关。相反,模式是将文件签入为wp-config.php.samplewp-config.php.template或类似,并在wp-config.php中设置.gitignore

如果您可以控制wp-config.php的消费者,另一种可接受的方法是让它查找第二个文件wp-config-local.php或类似文件,并将其添加到.gitignore。如果它不存在,它将被忽略,如果它存在,它将覆盖签入的wp-config.php中的东西。