9

我想切换分支。但得到错误

error: Untracked working tree file 'foo.phtml' would be overwritten by merge.

如果我删除此文件,则会抱怨下一个文件。问题是两个分支中的文件差异很大。

这是我尝试过的:

$ git reset --hard HEAD
HEAD is now at 8a2a95c Initial checkin
$ git checkout otherbranch
error: Untracked working tree file 'foo.phtml' would be overwritten by merge.
$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 677 different commit(s) each, respectively.
#
nothing to commit (working directory clean)

这里有什么问题?

我也已经试过了

git clean -f -d
4

2 回答 2

9

您面临的问题是要签出的分支包含许多文件,例如foo.phtml当前分支中未跟踪的文件。看来你可以只删除文件,所以尝试:

git checkout -f otherbranch
于 2012-11-21T18:02:32.763 回答
6

万一您以后确实关心文件,请使用

git stash -u

这将清理您的工作目录,但如果您丢失了某些东西,您可以从存储中取回它。现在您可以继续检查您的另一个分支。

另一种情况是文件在一个分支中被忽略,而不是在另一个分支中。在这种情况下,您应该使用git checkout -f theotherbranch.

于 2012-11-21T18:35:39.423 回答