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
它,提交它,然后将文件移回原位。现在它将被正确忽略。
我的 .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
它,提交它,然后将文件移回原位。现在它将被正确忽略。