拉动和更改.gitignore文件后,Git结帐失败

时间:2013-01-19 16:10:11

标签: git gitignore git-pull git-checkout

假设我在我的本地仓库中有两个分支'master'和'new',在master中我决定在.gitignore中放置一个文件夹'folder /',然后我从repo中拉出到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 /'文件夹,我不明白为什么我收到这条消息(我想检查过程对我来说并不是很清楚)。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

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

原因是您从存储库中删除了该文件夹,但文件仍然存在; git rm --cached只会从索引中删除文件,但不会从物理上删除文件。因此,当您查看仍然跟踪这些文件的其他版本时,就会发生冲突。

如果您想要删除文件,可以直接删除它们(rm <file>)。然后检查出不同的分支后,当然那个文件仍然会带来这些文件,所以你可能也想在那个分支上删除它们(或者稍后将删除合并到那个分支中)。