我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
当前回答
注意以下“问题”有时您想添加目录,但这些目录中没有文件。简单的解决方案是创建一个包含以下内容的.gitignore:
*
这个接缝工作得很好,直到您意识到目录没有添加到存储库(正如预期的那样)。这样做的原因是.gitignore也将被忽略,因此目录是空的。因此,你应该这样做:
*
!.gitignore
其他回答
在我的例子中,我想排除一个现有文件。 仅修改。gitignore无效。 我是这样做的:
git rm --cached dirToFile/file.php
vim .gitignore
git commit -a
通过这种方式,我从缓存中清除了我想要排除的文件,并将其添加到.gitignore。
注意以下“问题”有时您想添加目录,但这些目录中没有文件。简单的解决方案是创建一个包含以下内容的.gitignore:
*
这个接缝工作得很好,直到您意识到目录没有添加到存储库(正如预期的那样)。这样做的原因是.gitignore也将被忽略,因此目录是空的。因此,你应该这样做:
*
!.gitignore
你可以在。gitignore文件中加入一行。gitignore。这将导致git忽略.gitignore文件。我不认为这是个好主意。我认为ignore文件应该被版本控制和跟踪。我只是为了完整起见。
如果你已经签入了.gitignore,并且你想忽略对它的修改,看看这个答案:
尝试使用这个命令: git update-index——assume-unchanged FILENAME_TO_IGNORE 要反转它(如果你想提交更改),使用: Git update-index——no-assume-unchanged 更新: 下面是如何列出“假定不变”文件在当前 目录: git ls-files -v | grep -E "^[a-z]" 因为-v选项会用小写字母表示" assume unchanged " 文件。
其思想是将特定于项目的文件放入.gitignore文件中,并(如前所述)将其添加到存储库中。例如.pyc和.o文件,测试套件创建的日志,一些fixture等等。
对于您自己的安装程序创建的但不一定会出现在每个用户面前的文件(例如。swp文件,如果您使用vim,隐藏的ecplise目录等),您应该使用.git/info/exclude(如上所述)。