Git 高级忽略

Git advanced ignoring

我的 .gitignore 看起来更不像这样:

# Ignore everything
*

# But not these files...
!.gitignore
!ImportantDirectory/
!AnotherImportantDirectory

# Actually, ignore these...
ImportantDirectory/NotImportantFile

问题是 ImportantDirectory/NotImportantFile 仍在被跟踪。知道如何解决这个问题吗?

如果您之前包含该文件,它将继续被跟踪,直到您将其从存储库中删除,即使您将其列在 .gitignore 中也是如此。听起来这就是这里发生的事情。你可以这样做:

git rm --cached ImportantDirectory/NotImportantFile

请注意,这将从 .git 存储库中删除文件,但不会删除磁盘上的本地文件。但是请注意,对于拉取您的 git 存储库的任何人,这将删除 ImportantDirectory/NotImportantFile,因此如果这是他们也需要维护但未包含的文件,您可能需要采取不同的方法。

您不能忽略已跟踪的路径。要解决这个问题,只需将 NotImportantFile 移动到其他地方,git rm 它,提交它,然后将文件移回原位。现在它将被正确忽略。