关于分支:Git:不能在分支之间切换

Git: can't switch between branches

在一个包含多个文件的本地文件夹中,我有一个git存储库,对于这个存储库,分支X只包含其中的一些文件,而主文件包含所有这些文件。

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

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

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

我该怎么办?


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

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

这里和这里有更多信息。


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

您可以提交或存储这些更改。

参见:http://git-scm.com/book/en/v1/git-tools-stashing


git checkout-f branch你想走吗?

小心。这将恢复对分支所做的所有更改。但如果你被迫合并,不让你藏匿是一个简单的方法,当没有做太多。

如果您想在以后删除您的分支(可能是使用git branch-d branch_删除),或者您想从0开始使用此品牌,请执行此操作。