我的wp-config.php
在git下,现在我想忽略它。Git reset恢复被忽略的文件?
我已经将其添加到.gitignore
,COMMITED新.gitignore
和 然后执行 git update-index --assume-unchanged -- wp-config.php
现在,当我执行git reset --hard
的wp-config.php
文件恢复回来,虽然我希望它忽略它...它是仍然从git中重新获取。任何想法为什么?
我的wp-config.php
在git下,现在我想忽略它。Git reset恢复被忽略的文件?
我已经将其添加到.gitignore
,COMMITED新.gitignore
和 然后执行 git update-index --assume-unchanged -- wp-config.php
现在,当我执行git reset --hard
的wp-config.php
文件恢复回来,虽然我希望它忽略它...它是仍然从git中重新获取。任何想法为什么?
.gitignore
只适用于未跟踪的文件。只要跟踪文件(添加到索引).gitignore
并没有任何影响。如果您希望.gitignore
生效,则需要从存储库中删除该文件。
--assume-unchanged
是一个非常危险的选择,特别是如果你不知道它是什么意思。你不告诉Git不要触摸这个文件,但是你告诉它这个文件没有改变,不管它在内容中发现了什么。这意味着,如果您切换分支或者如果您使用重置或类似的事情,Git会假定文件未更改,并且愉快地覆盖您通常会警告您的文件所做的任何本地更改,并拒绝覆盖将丢失的更改除此以外。
有没有安全的方式告诉Git忽略已跟踪文件的变化,因为这是跟踪文件的感觉。模式是将文件签入为wp-config.php.sample
或wp-config.php.template
或类似文件,并在.gitignore
中有wp-config.php
。
,如果你能控制的wp-config.php
另一个对消费者接受的方式是使其看起来对于第二个文件wp-config-local.php
或相似,并添加到.gitignore
。如果它不存在,它将被忽略,如果它存在,它将覆盖登记在wp-config.php
的东西。
因此,除了引用另一个文件(include/require)之外,没有办法'取消'已经检入git的文件?这很奇怪。 – Broshi
正在将文件从存储库中删除。 'git rm file'或'git rm --cached file'只能将其从存储库中删除,但保留工作文件。 (但仅限于你,其他人在更新时会得到删除,之后需要手动恢复该文件)使git忽略对跟踪文件的更改是不可能的,不会。这并不奇怪,但通过设计。如果跟踪文件,您想要跟踪对其的更改,那就是跟踪文件的意义。 – Vampire
幸运的是'--assume-unchanged'实际上并没有让Git覆盖文件,在我做的测试中,但我不确定这是否属于* all * Git版本。你知道的情况*它会*假定文件没有改变并且实际上覆盖了它? – torek
你应该删除一个文件,如果你想让它不被git触及。 –
删除'git rm'中的文件? – Broshi