Git:不能在分支机构之间切换

时间:2015-03-31 09:00:42

标签: git branch

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

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

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

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

我该怎么办?

3 个答案:

答案 0 :(得分:1)

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

您可以提交这些更改,也可以存储它们。

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

答案 1 :(得分:1)

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

为了能够更改分支,您可以将这些文件添加到工作树(git add file1.out或全部:git add --all),也可以将其删除(git rm file1.out ... )。然后你可以提交或(如果没有准备好)你可以存储它们(git stash)并在你想要它们的时候(git stash pop

更多信息herehere

答案 2 :(得分:0)

git checkout -f branch_you_want_to_go

小心。这将还原分支上所做的所有更改。但是,如果您没有做太多事情,那么如果您被迫合并并且不让自己藏匿,这是一种简便的方法。

如果您要随后删除分支(可能是使用git branch -D branch_to_delete),或者要从0开始处理此品牌,请执行此操作。