在包含多个文件的本地文件夹中,我有一个git存储库,分支 x 只包含其中的一些文件,而 master 包含所有文件。
当我尝试从x切换到master时,我得到:
$ git checkout master
error: The following untracked working tree files would be overwritten by checkout:
[...some files...]
Aborting
编辑: 列出的文件都不属于分支x,它们都属于主分区。我非常自信他们没有被修改过,无论如何我都可以回到他们在主分支中保存的任何版本。
我该怎么办?
答案 0 :(得分:1)
您有一些已编辑的文件(列出的文件),但通过签出其他分支,您将覆盖(并丢失)这些编辑。
您可以提交这些更改,也可以存储它们。
答案 1 :(得分:1)
问题是您有尚未添加到工作树的文件(例如:上次提交后创建的新文件)。当你想切换分支时,Git会阻止你丢失这些文件。
为了能够更改分支,您可以将这些文件添加到工作树(git add file1.out
或全部:git add --all
),也可以将其删除(git rm file1.out ...
)。然后你可以提交或(如果没有准备好)你可以存储它们(git stash
)并在你想要它们的时候(git stash pop
)
答案 2 :(得分:0)
git checkout -f branch_you_want_to_go
小心。这将还原分支上所做的所有更改。但是,如果您没有做太多事情,那么如果您被迫合并并且不让自己藏匿,这是一种简便的方法。
如果您要随后删除分支(可能是使用git branch -D branch_to_delete),或者要从0开始处理此品牌,请执行此操作。