Git: 无法在分支之间切换

Git: can't switch between branches

在一个包含多个文件的本地文件夹中,我有一个 git 存储库,分支 x 只包含其中的几个文件,master一个包罗万象

当我尝试从 x 切换到 master 时,我得到:

$ git checkout master
error: The following untracked working tree files would be overwritten by checkout:
[...some files...]
Aborting

编辑: None 个列出的文件属于分支 x,它们都属于主文件。我非常有信心它们没有被修改,无论如何我都可以回到主分支中保存的任何版本。

我该怎么办?

您有一些文件(列出的文件)已被编辑,但通过签出其他分支,您将覆盖(并丢失)这些编辑。

您可以提交或隐藏这些更改。

参见:http://git-scm.com/book/en/v1/Git-Tools-Stashing

问题是您有一些文件尚未添加到工作树中(例如:在上次提交后创建的新文件)。 Git 防止您在切换分支时丢失这些文件。

为了能够更改分支,您可以将这些文件添加到工作树(git add file1.out 或全部:git add --all)或者您可以删除它们(git rm file1.out ...).然后你可以提交或者(如果还没有准备好)你可以把它们藏起来(git stash),当你想要它们回来时(git stash pop

更多信息here and here

git checkout -f branch_you_want_to_go

小心。这将还原在分支上所做的所有更改。但是,如果你被迫合并并且不让你隐藏是一个简单的方法,当没有做太多的时候。

如果你想在之后删除你的分支(可能使用 git branch -D branch_to_delete)或者你想从 0 开始在这个品牌上工作,请执行此操作。

我的项目出现了同样的问题。我清除或提交了所有更改的文件,但我仍然无法更改它。

我注意到 Abort 按钮在 Commit All 按钮旁边。中止按钮解决了我的问题。