在拉出并更改.gitignore文件后Git签出失败



假设我在本地的repo中有两个分支'master'和'new',在master中我决定在.gitignore中添加一个文件夹'folder/',并从repo中拉入master,添加一个新文件夹'temp/'现在当我想签出到'new'时,我有这个

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——缓存到'temp/'和'folder/'文件夹,我不明白为什么我得到这个消息(我认为签出过程对我来说不是很清楚)。有人能帮忙吗?

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

这样做的原因是您从存储库中删除了文件夹,但文件仍然存在;git rm --cached只会从索引中删除文件,而不会物理地删除这些文件。所以当你签出一个不同的版本时,它仍然跟踪这些文件,你就会得到冲突。

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

最新更新