取消跟踪和停止跟踪Git中的文件

44
我有一个名为objects的深层子文件夹,其中包含名为*.object的文件,我不想让git跟踪(Windows)。
在.gitignore中,我尝试了各种组合(例如**/objects/***/objects/*等),但都没有成功:每次当我执行git status时,我都会看到:
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       foo/src/objects/a.object
#       foo/src/objects/b.object

只有当我在.gitignore文件中添加*.object时,这些文件才会从未跟踪的文件列表中消失。我的通配符有什么问题吗?
此外,何时需要使用git update-index,何时应该使用git rm --cached myfile?
是否有类似于git rm --cached **/foo/*.zip的rm通配符功能?
更新:同样,在.gitignore文件中添加.gitignore这一行(并不总是理想的,但仍然)没有效果。这种怪异现象是因为这些文件以前可能被跟踪过吗?
1个回答

89

虽然在 Windows 中通配符不起作用,但似乎可以通过以下方式删除整个文件夹:

git rm -r --cached "path/to/foo/"

我理解 --cached 只是把文件从暂存区撤出,你需要通过 git commit 命令将其从代码库中移除。

6
我猜您需要将文件/目录添加到 .gitignore 中。 - Donato
致命错误:路径规范未匹配任何文件。 - TheRealChx101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接