4

如果我克隆一个 repo 并随后将下载的文件之一添加到 .gitignore,我知道我将不得不“取消跟踪”它们,以便应用 .gitignore 规则。在取消跟踪它们并因此被 gitignored 之后,当再次从远程存储库中提取对这些文件的任何更新时,它们是否会被重新跟踪?

4

2 回答 2

7

如果文件在远程仓库中仍然被跟踪并且没有被忽略,是。拉取时,它将更新对该文件的更改。如果在本地机器上修改了文件,则会引发冲突。

实际上,当您取消跟踪文件时,您必须将更改推送到远程仓库,以便该文件也将在远程仓库中取消跟踪。如果您只想在本地计算机中取消跟踪文件,还有其他方法。参考:https ://stackoverflow.com/a/11209188/1365319

您还可以通过将“.gitignore”文件提交到 repo 来与您的大学共享,这样他们就不会意外地将文件添加到 repo。

于 2012-06-29T10:14:26.547 回答
4

.gitignore条目将告诉 repo 不要考虑跟踪新文件。如果该文件之前已添加到索引并已被跟踪,则将继续跟踪该文件,直到您将其从索引中删除。也就是说,.gitignore将阻止 repo 看到新文件。您仍然需要git rm --cached <file>删除现有的跟踪项目。从那时起,它不会被考虑。

请注意,编辑 .gitignore 会影响整个 repo。当您提交并推送时,远程仓库将被忽略和取消跟踪。

如果您的目标是仅在本地忽略而不影响远程,请考虑其他 SO 问题

特定于特定存储库但不需要与其他相关存储库共享的模式(例如,存在于存储库中但特定于一个用户工作流的辅助文件)应该进入 $GIT_DIR/info/exclude 文件。

于 2012-06-28T17:10:12.217 回答