为什么在Git中切换分支时会收到错误“未跟踪的工作树文件”?


Why do I receive the error “Untracked working tree file” when switching branches in Git?

直到昨天,我的项目只有一个带有.gitignore文件的分支,类似于:

1
2
3
*.log
upload/*
!upload/global/empty.txt

它工作得很好,直到我添加了一个新的分支并更改了这个.gitignore,不忽略上载文件。新的.gitignore文件只保留一行:

1
*.log

我毫无问题地回到了主分支,但是现在每次我想去新的分支,我都会收到这样的消息:

error: Untracked working tree file 'upload/file.txt' would be
overwritten by merge.

我需要结帐这个分支来处理它,或者至少挽救我所做的承诺。

注意:我发现了类似的问题,但没有回答我的问题。


您的问题是,在新的分支中,您没有跟踪upload/file.txt,但在主分支中跟踪它。因此,当您切换到新的分支时,您的master版本将覆盖未跟踪的文件。

-f标志添加到git签出中,以强制git覆盖未跟踪的文件。