我有一个git存储库。它有A B C D E ...提交。现在我想结帐D作为名为Dbranch的新分支。所以我执行:git checkout D -b Dbranch
。现在我想删除这个分支。首先,我需要切换到master分支,然后使用git branch -d Dbranch
删除它。但是当我执行git checkout master
时,它会给我错误。
error: The following untracked working tree files would be overwritten by checkout:
source/a/foo.c
...... (too many lines)
Please move or remove them before you can switch branches.
Aborting
如何删除Dbranch?
答案 0 :(得分:78)
尝试git checkout -f master
。
-f
或--force
来源:https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html
切换分支时,即使索引或工作树与HEAD不同,也要继续。这用于丢弃本地更改。
当从索引中检出路径时,不要在未合并的条目上失败;相反,未合并的条目将被忽略。
答案 1 :(得分:5)
在Git 2.23(2019年8月)中,将使用git switch -f
:
git switch -f master
避免使用confusion with git checkout
(用于处理文件或分支)。
即使索引或工作树与HEAD不同,也会继续执行。
恢复索引和工作树以匹配切换目标。
如果指定了--recurse-submodules
,则子模块的内容也将还原以匹配切换目标。
这是用来丢弃本地更改的。
答案 2 :(得分:0)
做一个:
git branch
如果git给你看的话:
* (no branch)
master
Dbranch
你有一个“独立的HEAD”。 如果您已修改此分支上的某些文件,请提交它们,然后使用
返回到mastergit checkout master
现在你应该可以删除Dbranch了。