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


当前回答

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

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

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

其他回答

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

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

这行得通

# ignore my tmp folder
tmp/

我不太清楚“回答”命令是什么意思,所以我运行了它,这让我非常沮丧。它递归地从git repo中删除每个文件。

Stackoverflow救援。。。如何还原“git rm-r”?

git reset HEAD

做到了这一点,因为我有未提交的本地文件,我不想覆盖这些文件。

复杂的答案无处不在!

只需使用以下内容

git rm -r --cached .

它将从源文件中删除您试图忽略的文件,而不是从计算机上的主文件中删除!

之后,只需提交并推送!

这里没有提到的另一个问题是,如果你已经在Windows记事本中创建了.gitignore,我发现它在其他平台上看起来像是胡言乱语。关键是确保在记事本中将编码设置为ANSI(或者像我一样在linux上创建文件)。

根据我的回答:https://stackoverflow.com/a/11451916/406592

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