几周前我将Subversion存储库转换为Git。我留下了一堆我不再需要的分支,但无法删除。更糟糕的是,在试图摆脱svn /无论分支的过程中,我现在发现自己的分支与“起源”重复。这是我的分支列表的一个片段:
% git branch -a | egrep 'svn/partial|master'
* master
origin/master
origin/origin/master
svn/partial
remotes/origin/master
remotes/origin/origin/master
remotes/svn/partial
我似乎能够删除svn / partial分支,但不能删除remotes / svn / partial分支:
% git branch -D svn/partial
Deleted branch svn/partial (was 373a64c).
% git branch -D remotes/svn/partial
error: branch 'remotes/svn/partial' not found.
如果我git-fetch,重新创建svn / partial,我得到另一层“origin /”分支:
% git push
Everything up-to-date
% git fetch
From .
...
* [new branch] origin/origin/origin/master -> origin/origin/origin/master
...
* [new branch] svn/partial -> svn/partial
糟糕!它们像tribbles一样倍增:
% git br -a | egrep 'svn/partial|master'
* master
origin/master
origin/origin/master
origin/origin/origin/master
svn/partial
remotes/origin/master
remotes/origin/origin/master
remotes/origin/origin/origin/master
remotes/svn/partial
我该如何解决这个问题?
答案 0 :(得分:1)
git branch -d <branch>
删除本地分支。远程分支不在您的本地仓库中,因此您无法从本地仓库中删除它。
要从远程仓库中删除它,有一些等效的命令,规范的命令是:
git push origin :svn/partial
这就是说什么都不推(即一个不存在的分支)到远程分支svn/partial
,这会导致远程分支变得不存在......这就是Git说删除它的方式:)
最新版本的Git支持更友好的语法:
git push origin --delete svn/partial