我有一个已经初始化的Git存储库,我添加了一个.gitignore文件。我如何刷新文件索引,以便忽略我想要忽略的文件?


当前回答

要从跟踪中删除几个特定文件,请执行以下操作:

git update-index --assume-unchanged path/to/file

如果您想再次开始跟踪它:

git update-index --no-assume-unchanged path/to/file                      

其他回答

如果您试图忽略对存储库中已跟踪的文件所做的更改(例如,您需要为本地环境更改的dev.properties文件,但您永远不想签入这些更改),那么您要做的是:

git update-index --assume-unchanged <file>

如果你想再次开始跟踪更改

git update-index --no-assume-unchanged <file>

参见git更新索引(1)手册页。

如果您需要在git重置后继续使用,请查看更新索引的跳过工作树和无跳过工作树选项(通过)


更新:由于人们一直在问,这里有一个方便的(并在下面评论后进行了更新)别名,用于查看本地工作区中哪些文件当前被“忽略”(--假设未更改)

$ git config --global alias.ignored = !git ls-files -v | grep "^[[:lower:]]"

对于像我这样的迟钝的人,还有一个建议:)将.gitignore文件放到存储库根目录中,而不是放到.git文件夹中。干杯

在我的服务器linux服务器上(在我的本地dev mac上不是真的),只要我不添加星号,目录就会被忽略:

www/档案/*

我不知道为什么,但这让我放松了几个小时,所以我想分享。。。

如果文件已经在版本控制中,则需要手动删除它们。

删除.gitignore中的尾随空格

另外,确保你的.gitignore中没有尾随空格。我遇到这个问题是因为我在寻找答案,然后我有一种有趣的感觉,我应该打开编辑器,而不是只键入.gitignore.从结尾处删除一个多余的空格,然后现在就开始工作了:)