Git 忽略要提交的文件,但保留它们

Git 忽略要提交的文件,但保留它们,git,gitignore,Git,Gitignore,我有一些“资源文件”,每次运行脚本时都会更改。这些文件位于名为“res/”的文件夹中。收集所有这些文件中的数据需要一段时间,因此我不想在每次拉取时都将它们删除,但是,我不想在它们更改时必须提交它们。我在.gitignore中列出了它们,但似乎我在创建新分支、合并分支和拉取之间失去了它们 如何让git不删除它们,但不跟踪它们?您可以使用: git update-index --assume-unchanged <file> git update-index --no-assume-u

我有一些“资源文件”,每次运行脚本时都会更改。这些文件位于名为“
res/
”的文件夹中。收集所有这些文件中的数据需要一段时间,因此我不想在每次拉取时都将它们删除,但是,我不想在它们更改时必须提交它们。我在.gitignore中列出了它们,但似乎我在创建新分支、合并分支和拉取之间失去了它们

如何让git不删除它们,但不跟踪它们?

您可以使用:

git update-index --assume-unchanged <file>
git update-index --no-assume-unchanged <file>
git更新索引--假定未更改
…以防止Git跟踪对它们的更改。完成后,您可以使用:

git update-index --assume-unchanged <file>
git update-index --no-assume-unchanged <file>
git更新索引——无假设不变
…让Git再次跟踪他们。我非常确定,当使用
git pull
时,这将防止文件被覆盖,但我不是100%


来源:

.gitignore
匹配的文件被git完全忽略,因此git不会移动或删除它们(除非您通过运行
git clean-X
明确请求)。如果您丢失了这些文件,必须有其他东西来清理它们,或者它们已被提交到其中一个分支。@porneL我想我已经消失的文件,在我创建并签出一个新分支后消失了。不完全确定,但我注意到他们在那之后失踪了。