我有一个 git 存储库。它有 ABCDE ... 提交。现在我想将 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?
试试 git checkout -f master
。
-f
或 --force
来源:https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html
切换分支时,即使索引或工作树与 HEAD 不同,也要继续。这用于丢弃本地更改。从索引中检出路径时,不要在未合并的条目上失败;相反,未合并的条目将被忽略。
对于 Git 2.23(2019 年 8 月),使用 git switch -f
:
git switch -f master
这避免了 confusion with git checkout
(处理文件或分支)。
即使索引或工作树与 HEAD 不同,此命令也会继续执行。
恢复索引和工作树以匹配切换目标。
如果指定了 --recurse-submodules
,则子模块内容也将恢复到匹配切换目标。
这用于丢弃本地更改。
做一个:
git branch
如果 git 向您展示类似的内容:
* (no branch)
master
Dbranch
你有一个“分离的头”。如果您在此分支上修改了一些文件,请提交它们,然后返回到 master
git checkout master
现在您应该可以删除 Dbranch。
git status -u
没有显示任何内容......我不知道如何删除这个神秘的未跟踪文件,但这个命令帮助我暂时避开了这个问题