我有一些我不想跟踪的“设置”(例如,Eclipse * .prefs文件)的文件。它们已被跟踪(因为我没有正确设置),但git rm --cached
看起来像是如何阻止文件被跟踪。我试过这个,现在git status
将文件列为deleted:
,但它们仍然在我的目录中。到现在为止还挺好。
假设我在当前状态下使用git commit
;它将创建一个新的提交C1但不会跟踪这些文件。假设一段时间后,经过几次提交,并假设我对我的设置文件进行了一些更改,我使用git checkout
恢复到提交C1。这会删除不再跟踪的设置文件,还是只留下它们?我担心Git如何知道差异,在检查早期提交时,“此文件不在提交中,因此我将删除它”,并且“此文件应该保持独立”。 Git报告文件为deleted:
这一事实让我更加关注,我想,尽管可能这只是不准确的输出。
答案 0 :(得分:2)
Git在执行签出之前会进行检查,以查看目录中是否有任何未跟踪的文件,但是哪些文件存在于即将签出的提交中。如果有任何它告诉你它不能进行结账,因为文件将被覆盖。您可以移动/重命名它们并重试,或者使用--force
选项再次尝试,该选项将强制覆盖需要覆盖的任何内容。