1

假设我在本地仓库中有两个分支“master”和“new”,在 master 中,我决定在 .gitignore 中放置一个文件夹“folder/”,然后我从仓库中提取到 master,添加一个新文件夹“temp/”现在,当我想结帐到“新”时,我有这个

error: The following untracked working tree files would be overwritten by checkout:
.folder/subfolder/somefile
.folder/subfolder/somefile
tmp/somefiles(1),tmp/somefiles(2)...

(我在签出之前提交)我尝试运行 git rm --cached 到“temp/”和“folder/”文件夹,但我不明白为什么会收到此消息(而且我认为签出过程并不是真的对我来说清楚)。有人可以帮忙吗?

4

1 回答 1

3

该消息基本上意味着列出的文件现在未跟踪,但您正在签出的分支已跟踪它们。结果,这将删除这些文件的本地(未跟踪)版本,并将它们替换为您正在检出的分支中存储的任何内容。

原因是您从存储库中删除了该文件夹,但文件仍然存在;git rm --cached只会从索引中删除文件,但不会物理删除文件。因此,当您签出仍然跟踪这些文件的不同版本时,您会遇到冲突。

如果您仍然想删除这些文件,您可以直接删除它们 ( rm <file>)。然后在签出不同的分支之后,当然该分支仍会将这些文件带过来,因此您可能也希望在该分支上删除它们(或稍后将删除合并到该分支中)。

于 2013-01-19T16:18:26.677 回答