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


当前回答

我遇到的另一个问题是我放置了一个内联注释。

tmp/*   # ignore my tmp folder (this doesn't work)

这行得通

# ignore my tmp folder
tmp/

其他回答

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

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

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

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

感谢你的回答,我能够写下这个小单行来改进它。我在.gitignore和repo上运行了它,没有任何问题,但如果有人看到任何明显的问题,请评论。这应该是git rm-r--cached from.gitignore:

cat $(git rev-parse --show-toplevel)/.gitIgnore | sed "s/\/$//" | grep -v "^#" | xargs -L 1 -I {} find $(git rev-parse --show-toplevel) -name "{}" | xargs -L 1 git rm -r --cached

注意,你会得到很多致命的错误:pathspec“<pathspec>”与任何文件都不匹配。这只是针对尚未修改的文件。

没有一个答案对我有效。

相反:

将文件移出git控制的目录检查git中的删除将文件移回git控制的目录

将文件移回后,git将忽略它。也适用于目录!

要取消跟踪已添加/初始化到存储库的文件,即停止跟踪该文件,但不从系统中删除它,请使用:gitrm--缓存文件名

是的。gitignore系统只忽略当前不受git版本控制的文件。

也就是说,如果您已经使用gitadd添加了一个名为test.txt的文件,那么将test.txt添加到.gitignore仍然会导致跟踪对test.txt的更改。

您必须首先获取rm test.txt并提交更改。只有这样,才会忽略对test.txt的更改。