当我使用
时git status
我给出了一个没有跟踪的所有文件和目录的列表
.idea/
src/main/java/edu/mason/insf/ann/annUML.uml
target/
然而,当我尝试结账到另一家分店时,却告诉我:
error: The following untracked working tree files would be overwritten by checkout:
target/classes/...
继续列出目标文件夹中的一堆文件(未被跟踪)。
当我尝试删除文件时,无论如何都要使用
购买git rm target/classes/...
或
git checkout target/classes
我收到以下错误
fatal: pathspec 'target/classes/...' did not match any files.
Git实际上告诉我正在跟踪同一个文件,而不是同时跟踪。它不会让我从我的工作树中删除该文件,它也不会让我切换分支,因为这个未跟踪文件的更改可能会被覆盖。
有人可以解释发生了什么吗?
答案 0 :(得分:2)
在您当前已签出的提交中未跟踪文件,但在尝试签出的提交中 进行跟踪。 Git不知道你的未跟踪副本是否有重要的变化,因此它拒绝用提交中的副本破坏它们。
git rm
失败,因为它对索引中的跟踪文件进行操作。这些文件未跟踪,因此不在索引中,因此无法对它们进行操作。
要解决此问题,请在确认您未对要保留的内容进行任何更改后,使用rm
(不 git rm
)删除文件。