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


当前回答

删除.gitignore中的尾随空格

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

其他回答

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

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

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

这行得通

# ignore my tmp folder
tmp/

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

要取消跟踪.gitignore中的每个文件,请执行以下操作:

首先提交所有未完成的代码更改,然后运行以下命令:

git rm -r --cached .

这将从索引(临时区域)中删除所有更改的文件,然后只需运行:

git add .

提交:

git commit -m ".gitignore is now working"

要撤消git rm--缓存的文件名,请使用git add filename。

确保在运行gitadd之前提交所有重要的更改。否则,您将丢失对其他文件的任何更改。

请小心,当您将其推送到存储库并从其他位置拉到仍在跟踪这些文件的状态时,这些文件将被删除

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

正如dav_i所说,为了将文件保存在repo中,并在不创建额外提交的情况下将其从更改中删除,您可以使用:

git update-index --assume-unchanged filename