当从远程仓库中提取文件时,gitignored,未跟踪文件会发生什么?

时间:2012-06-28 17:01:40

标签: git gitignore

如果我克隆一个仓库并随后将其中一个下载的文件添加到.gitignore,我知道我将不得不“取消”它们,因此.gitignore规则将适用。在取消跟踪它们并因此被重新监控之后,是否再次从远程仓库撤回对这些文件的更新时会重新跟踪它们?

2 个答案:

答案 0 :(得分:7)

如果仍在远程仓库中跟踪并且未忽略该文件,则为YES。拉动时,它会更新对该文件的更改。如果在本地计算机中修改了该文件,则会引发冲突。

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

你也可以通过将你的“.gitignore”文件提交给repo来共享你的“.gitignore”文件,这样他们就不会意外地将文件添加到repo中。

答案 1 :(得分:4)

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

请注意,编辑.gitignore会影响整个仓库。当你提交并推送时,远程仓库将忽略并且不跟踪。

如果您的目标是仅在本地忽略而不影响远程,consider this other SO question

  

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