git ignore和untrack的区别

30

忽略文件夹和在git中取消跟踪的区别是什么?我需要从我的git存储库中删除一些文件夹,我正在使用带有git插件的Netbeans,并错误地将build、dist和nbproject文件夹放置在我的存储库中,现在我需要删除这些文件夹。

3个回答

30

如果你在代码库中创建了一个名为 .gitignore 的文件,git 在寻找要提交的文件时将使用它的规则。git 不会忽略之前已经跟踪(即已经在代码库中的)的文件,除非在该文件中添加了忽略规则并将其从代码库中删除。

git rm --cached filename

该命令将停止跟踪,但保留文件不变。


14

我假设你所说的“ignore”是指.gitignore,这是一个特殊文件,你可以创建它以让git读取并决定一组要忽略的文件和/或目录。你可以覆盖它,但通常这些文件将在任何git操作中被隐藏。

Git中的“未跟踪”仅意味着你尚未将该文件添加到仓库中。

如果一个文件未跟踪,并且被.gitignore排除了,那么你甚至无法通过git status或其他任何git命令查看它。

为解决你当前的问题,即你已经意外添加了不想跟踪的文件并希望将其排除,首先将这些文件夹添加到你的.gitignore中,然后尝试这个命令:

git rm -r --cached "path/to/ignored/directories"

这将从您的存储库中删除不需要的目录,但不会从本地工作副本中删除它们。


感谢您解释了“未跟踪”的含义。 - LarsH

1

1
你并没有解释什么是跟踪。 - Teo Maragakis

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