# git - 删除远程分支
# 遇到的问题
新版版本稳定上线后,之前的开发分支都需要删掉,清理掉无用的分支。在 git 仓储的页面上删除了分支,本地还是可以通过git branch -a 看到之前的远程分支。
git branch -a
* develop
ie_resizable
test_optimize
remotes/origin/#2313 // 已经删掉了
remotes/origin/HEAD -> origin/develop
1
2
3
4
5
6
7
2
3
4
5
6
7
# 解决办法
从本地用命令行操作
先删除本地分支
git branch -D #2313
1然后可以有两种方式,删除远程分支:
- a.在Git v1.7.0 之后,可以使用这种语法删除远程分支:
git push origin --delete #2313 // <branchName> To https://github.com/rem486.git - [deleted] #2313
1
2
3
4- b.推送一个空的分支到远程分支,实现删除远程分支:
git push origin :#2313
1从 网页端/其他人 删除了远程分支更新到本地
先删除本地分支,查看分支状态
git branch -D #2313 git remote show origin * remote origin Fetch URL: https://github.com/rem486.git Push URL: https://github/rem486.git HEAD branch: develop Remote branches: develop tracked master tracked refs/remotes/origin/#2313 stale (use 'git remote prune' to remove)
1
2
3
4
5
6
7
8
9
10
11可以看到 stale 说明已经被删除了,需要将其从本地仓库的记录中删除
- a.
git remote prune origin Pruning origin URL: https://github.com/rem486.git * [pruned] origin/#2313
1
2
3
4- b.
git remote update origin --prune Fetching origin From https://github.com/rem486.git - [deleted] (none) -> origin/#2313 * [new branch] #2717 -> origin/#2717
1
2
3
4
5- c.在fetch之后删除掉没有与远程分支对应的本地分支:
git fetch -p From https://github.com/rem486.git - [deleted] (none) -> origin/#2313
1
2
3- d.其它
git pull -p
1