我在.gitignore中添加了以下一行:
sites/default/settings.php
但是当我输入git状态时,它显示文件为unstaging文件。
有什么问题吗?所有其他模式都很好。
我在.gitignore中添加了以下一行:
sites/default/settings.php
但是当我输入git状态时,它显示文件为unstaging文件。
有什么问题吗?所有其他模式都很好。
当前回答
确保你的.gitignore位于工作目录的根目录下,在该目录下运行git status并从状态输出中复制文件的路径,并将其粘贴到.gitignore文件中。
如果这不起作用,那么很可能您的文件已经被Git跟踪了。您可以通过git status的输出确认这一点。如果文件不在“Untracked files”一节中,那么Git已经在跟踪它了,它会忽略.gitignore文件中的规则。
在Git中忽略文件的原因是它们不会被添加到存储库中。如果您之前添加了一个想要忽略的文件,那么Git将跟踪它,并跳过与之匹配的忽略规则。Git这样做是因为该文件已经是存储库的一部分。
为了实际忽略该文件,必须取消跟踪并将其从存储库中删除。你可以使用git rm——cached sites/default/settings.php来实现。这将从存储库中删除文件,而无需物理删除文件(这就是——cached所做的)。提交更改后,该文件将从存储库中删除,忽略它将正常工作。
其他回答
我在VS Code终端上尝试了上面的大多数命令,我得到了如下错误:
致命:pathspec '[dir]/[file]'没有匹配任何文件
我在GitHub Desktop上打开了这个项目,然后忽略了它,它工作了。
以防将来有人遇到和我一样的问题
如果你使用
*
!/**/
!*.*
移除没有扩展名的二进制文件的技巧,确保所有其他gitignore行都在下面。Git会从顶部读取。gitignore,所以即使我有'test. Git '。“Go”在我的gitignore中,它是文件中的第一个,然后变成了“不可忽视”
!*.*
.gitignore将只忽略你还没有添加到存储库的文件。
如果你做了git add .,文件被添加到索引中,.gitignore不会帮助你。你需要执行git rm sites/default/settings.php来删除它,然后它就会被忽略。
我也有同样的问题。 在.gitingore中定义的文件在运行git状态时被列为未跟踪文件。
这是因为.gitignore文件是用UTF-16LE编码保存的,而不是UTF8编码。
在将.gitignore文件的编码更改为UTF8之后,它就工作了。
我刚刚尝试了git 1.7.3.1,并给出了这样的结构:
repo/.git/
repo/.gitignore
repo/sites/default/settings.php
其中repo因此是上面提到的“根”(我将它称为你的工作树的根),而.gitignore只包含sites/default/settings.php,忽略为我工作(无论.gitignore是否被添加到repo)。这与你的回购布局匹配吗?如果不是,有什么不同?