我想切换分支。但得到错误
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
答案 0 :(得分:6)
您遇到的问题是,您要检出的分支包含许多文件,例如foo.phtml
,这些文件未在当前分支中跟踪。您似乎可以删除文件,因此请尝试:
git checkout -f otherbranch
答案 1 :(得分:4)
如果您以后关注这些文件,请使用
git stash -u
将清理您的工作目录但是如果您丢失了某些东西,您可以从藏匿处取回它。现在你可以继续检查你的其他分支。
另一种情况是文件在一个分支中被忽略而在另一个分支中不被忽略。在这种情况下,您应该使用git checkout -f theotherbranch
跟进stash命令(如果git status显示更改了某些内容)。