40

我对使用 git 很陌生,我用它来为 AOKP Android ROM 做贡献。我已经成功地创建了一些分支,修改了代码,并上传了已经在远程端合并的提交。但是在我的本地存储库中,这些分支仍然出现(即使它们显示为没有更改)。问题是,当我创建这些分支时,我是从需要修改的子文件夹中直接创建的,所以我没有任何“更高”的分支可以访问。正因为如此,我不能删除那些分支——git 告诉我error: Cannot delete the branch 'MyMods' which you are currently on.

那么我能做些什么来摆脱这些分支呢?

4

4 回答 4

55

先签出一个不同的分支,然后再删除它:

git checkout master
git branch -d MyMods

此外,分支与文件夹无关。Git 总是一次跟踪整个存储库,包括它的所有文件夹和文件。分支只不过是存储库历史记录中指向单个提交或快照的指针。

于 2012-09-26T16:50:59.027 回答
4

是的,只需签出另一个分支(也许是 master),然后:

git checkout master
git branch -d thebran
于 2012-09-26T16:53:19.513 回答
0

但是在我的本地存储库中,这些分支仍然出现(即使它们显示为没有更改)。

除非您删除它们,否则分支将显示在您的本地存储库中。当您推动它们时,它们不会消失。

上面的答案告诉您如何删除分支。但是,我要补充一点,使用 -D 选项功能更强大。此选项删除分支,无论其(未)合并状态如何:

git branch -D branchName

这是删除分支的原子弹。小心使用。

于 2012-09-27T15:03:06.503 回答
0

如果您无法删除的分支是工作树,那么您可能需要先删除该工作树:

rm -r MyMods
git worktree list    # shows MyMods
git worktree prune
git worktree list    # doesn't show MyMods
git branch -d MyMods
于 2017-10-06T22:12:58.507 回答