git remote prune origin

最近在开发的时候偶然发现,同事在本地使用git branch -a会看到我已经删除的远程分支,git fetch之后依然能看到,然后同事就来询问我为什么不清理掉那些久远的分支,然而我确实是执行了git push origin --delete branchName删除每个版本后不用的分支。当时感觉非常奇怪,然后又发现,我在本地也能看到同事已经删除的远程分支。当时我就蒙蔽了,非常蒙蔽。后来查找资料才知道,我们需要使用git remote prune origin

先调用git remote show origin

该命令能够获取远端分支信息,你可以看到和本地和远端不同步的地方:

$ git remote show origin
* remote origin
  Fetch URL: git@gitlab.xxx.git
  Push  URL: git@gitlab.xxx.git
  HEAD branch: master
  Remote branches:
    dev_chj                                      tracked
    dev_pr                                       tracked
    dev_pr_v13                                   tracked
    dev_wcc                                      tracked
    dev_wcc_city                                 tracked
    dev_xgm                                      tracked
    develop                                      tracked
    hofix_jingxiaoshang                          tracked
    hotfix_code_sort                             tracked
    hotfix_groupclueimport                       tracked
    master                                       tracked
    refs/remotes/origin/dev_cjc                  stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_agent            stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_brand            stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_channel_ad       stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_channel_youhua   stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_chonggouquanxian stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_dahuanxue        stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_deletegame       stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_getActivity_info stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_jiechufenghao    stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_kefuwaihu        stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_notice           stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_refreshtoken     stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_v10_0904         stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_v12              stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_v14              stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_v16              stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_v16_tmp          stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_v9               stale (use 'git remote prune' to remove)
    refs/remotes/origin/feature_youhua_shiro     stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_cardno             stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_channel_export     stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_export             stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_import_cardorder   stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_master             stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_master_sql         stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_page               stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_session_redis      stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_sql                stale (use 'git remote prune' to remove)
    refs/remotes/origin/hofix_tishixiansuo       stale (use 'git remote prune' to remove)
    refs/remotes/origin/hotfix_authc             stale (use 'git remote prune' to remove)
    release                                      tracked
    test                                         tracked
  Local branches configured for 'git pull':
    dev_chj           merges with remote dev_chj
    dev_pr            merges with remote dev_pr
    dev_wcc           merges with remote dev_wcc
    dev_wcc_city      merges with remote dev_wcc_city
    dev_xgm           merges with remote dev_xgm
    develop           merges with remote develop
    feature_dahuanxue merges with remote feature_dahuanxue
    feature_v16       merges with remote feature_v16
    master            merges with remote master
    release           merges with remote release
    test              merges with remote test
  Local refs configured for 'git push':
    dev_chj      pushes to dev_chj      (local out of date)
    dev_pr       pushes to dev_pr       (up to date)
    dev_wcc      pushes to dev_wcc      (up to date)
    dev_wcc_city pushes to dev_wcc_city (up to date)
    dev_xgm      pushes to dev_xgm      (local out of date)
    develop      pushes to develop      (local out of date)
    master       pushes to master       (local out of date)
    release      pushes to release      (up to date)
    test         pushes to test         (local out of date)


* 远程 origin
  获取地址:http://openapi2.0.git
  推送地址:http://openapi2.0.git
  HEAD分支:master
  远程分支:
    beta                         已跟踪
    develop                      已跟踪
    master                       已跟踪
    refs/remotes/origin/communal 过时(使用 'git remote prune' 来移除)
    refs/remotes/origin/lt-v1    过时(使用 'git remote prune' 来移除)
    release/1.0                  已跟踪
  为 'git pull' 配置的本地分支:
    beta    与远程 beta 合并
    develop 与远程 develop 合并
    master  与远程 master 合并
  为 'git push' 配置的本地引用:
    beta    推送至 beta    (最新)
    develop 推送至 develop (本地已过时)
    master  推送至 master  (本地已过时)

过时的就是和本地不同步的分支,本地已过时的表示你需要移除这个分支了。

这个时候你需要调用

git remote prune origin

同步远程的分支到本地,这样远程已经被删除的分支,本地就不会再看见了。

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当执行"git fetch origin"命令时报错,可以尝试以下解决方法: 1. 检查远程仓库是否存在:确保远程仓库 "origin" 存在,并且你有访问权限。 2. 检查远程仓库的URL:使用命令 "git remote -v" 来查看远程仓库的URL是否正确。 3. 检查网络连接:确认你的网络连接正常工作,确保可以访问远程仓库。 4. 检查权限设置:如果你没有足够的权限来访问远程仓库,可以联系仓库管理员来获取权限。 5. 更新Git版本:确保你使用的是最新版本的Git,并尝试重新执行命令。 如果上述方法仍然无法解决问题,你可以尝试执行以下命令来重新加载最新数据到本地: ```shell git remote update origin --prune ``` 这个命令相当于"git fetch",会重新加载最新的代码和分支到本地仓库。这样你就可以继续使用"git fetch"命令来更新本地仓库了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [git fetch 操作时报错:fatal: ‘origin‘ does not appear to be a git repository](https://blog.csdn.net/ThisEqualThis/article/details/126966875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【Git报错】fatal: ‘origin/XXX‘ is not a commit and a branch ‘XXX‘ cannot be created from it](https://blog.csdn.net/Supreme7/article/details/126119066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Git发现git push origin master 报错的解决方法](https://download.csdn.net/download/weixin_38743602/14092211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值