git远程删除分支后,本地git branch -a 依然能看到的解决办法。

247 阅读1分钟
 
  1. $ git branch -a
  2.  
  3. movtop
  4. task_develop
  5. * weibo
  6. remotes/origin/HEAD -> origin/task_develop
  7. remotes/origin/develop
  8. remotes/origin/fix_composer_repositories_type
  9. remotes/origin/join_weixin_module
  10. remotes/origin/master
  11. remotes/origin/mining-backup
  12. remotes/origin/movtop
  13. remotes/origin/right
  14. remotes/origin/schedule_dev
  15. remotes/origin/stuff_web_fix
  16. remotes/origin/task_develop
  17. remotes/origin/task_idea
  18. remotes/origin/task_temp
  19. remotes/origin/task_yqj
  20. remotes/origin/weibo
  21. remotes/origin/weixin_temp

使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。

 
  1. $ git remote show origin
  2.  
  3. * remote origin
  4. Fetch URL: https://xxx@gitlab.com/xxx/xxx.git
  5. Push URL: https://xxx@gitlab.com/xxx/xxx.git
  6. HEAD branch: task_develop
  7. Remote branches:
  8. master tracked
  9. mining-backup tracked
  10. refs/remotes/origin/develop stale (use 'git remote prune' to remove)
  11. refs/remotes/origin/fix_composer_repositories_type stale (use 'git remote prune' to remove)
  12. refs/remotes/origin/join_weixin_module stale (use 'git remote prune' to remove)
  13. refs/remotes/origin/movtop stale (use 'git remote prune' to remove)
  14. refs/remotes/origin/right stale (use 'git remote prune' to remove)
  15. refs/remotes/origin/schedule_dev stale (use 'git remote prune' to remove)
  16. refs/remotes/origin/stuff_web_fix stale (use 'git remote prune' to remove)
  17. refs/remotes/origin/task_temp stale (use 'git remote prune' to remove)
  18. refs/remotes/origin/weibo stale (use 'git remote prune' to remove)
  19. task_develop tracked
  20. task_idea tracked
  21. task_yqj tracked
  22. weixin_temp tracked
  23. Local branches configured for 'git pull':
  24. movtop merges with remote movtop
  25. task_develop merges with remote task_develop
  26. weibo merges with remote weibo
  27. Local ref configured for 'git push':
  28. task_develop pushes to task_develop (up to date)

此时我们可以看到那些远程仓库已经不存在的分支,根据提示,使用 git remote prune origin 命令:

 
  1. $ git remote prune origin
  2.  
  3. Pruning origin
  4. URL: https://xxx@gitlab.com/xxx/xxx.git
  5. * [pruned] origin/develop
  6. * [pruned] origin/fix_composer_repositories_type
  7. * [pruned] origin/join_weixin_module
  8. * [pruned] origin/movtop
  9. * [pruned] origin/right
  10. * [pruned] origin/schedule_dev
  11. * [pruned] origin/stuff_web_fix
  12. * [pruned] origin/task_temp
  13. * [pruned] origin/weibo

这样就删除了那些远程仓库不存在的分支。