为什么Git不会忽略我指定的文件?
我将下面一行添加到.gitignore,但是当我input“git status”时,它将文件显示为unstaged文件。问题是什么? 所有其他模式都很好。
.gitignore文件内容:
网站/默认/ settings.phpconfiguration
谢谢答复,但仍然不工作。我的朋友告诉可能文件(被忽略)手动添加。如果是这样的话,我该如何解决呢?似乎问题是相对于文件本身(文件被忽略)。
确保您的.gitignore
位于工作目录的根目录下,并在该目录中运行git status
, 并将状态输出中的path复制到文件中,并将其粘贴到.gitignore
。
编辑
在下面的评论中回应您的信息: “和git status的结果是:”更改但未更新:修改:网站/默认/ settings.php“。也注意到文件被跟踪…”
在git中忽略文件的原因是它们不会被添加到存储库中。 你之前把你想要忽略的文件添加到你的仓库,所以当然你不能再忽略它(因为git已经知道了)。
所以,如果你想忽略文件,你必须解开文件。 你可以通过使用git rm --cached sites/default/settings.php
。 这将删除跟踪。 提交后(从文件库中删除文件),忽略应该工作。
我碰到这个问题,这是一个老问题,但我希望跟踪这个文件,但不要在某些工作副本上跟踪它,要做到这一点,你可以运行
git update-index --assume-unchanged sites/default/settings.php
.gitignore只会忽略您尚未添加到存储库的文件。
如果你做了一个git add .
,并将文件添加到索引,.gitignore不会帮助你。 你需要做git rm sites/default/settings.php
来删除它,然后它会被忽略。
我只是用git 1.7.3.1试了一下,并给了一个像这样的结构:
repo/.git/ repo/.gitignore repo/sites/default/settings.php
repo
因此是上面提到的“根”(我称它为你的工作树的根),而.gitignore
只包含sites/default/settings.php
,这个忽略适用于我(和.gitignore
无关被添加到回购或不)。 这是否符合您的回购布局? 如果不是,有什么不同?
确保.gitignore没有扩展名! 它不能是.gitignore.txt,在windows中只需要命名文件.gitignore。 它会工作。