git remote prune origin

作用

同步服务器信息,然后精简本地数据
推荐使用git gc

场景

本人遇到场景,项目到固定阶段,远程的个别分支已经被删除,但是本地仍存在(实际已经无存在意义)。

  1. 本地现状为
    $ git branch -a
    * br
      br1
      master
      remotes/origin/HEAD -> origin/master
      remotes/origin/br
      remotes/origin/br1
      remotes/origin/master
    
  2. 本地依然存在,但是pull会异常
    $ git pull --rebase origin br1
    fatal: couldn't find remote ref br1
    
  3. 此刻需要同步仓库信息,精简本地数据
    $ git remote prune origin
    Pruning origin
    URL: ****.git
     * [pruned] origin/br1
    
  4. 此时查看分支状态为
    $ git branch -a
    * br
      br1
      master
      remotes/origin/HEAD -> origin/master
      remotes/origin/br
      remotes/origin/master
    
  5. 分析
    remote/origin已经与服务器仓库同步,已经不存在br1分支,自己本地分支删除即可

解决

git remote prune origin
参数:
   -n   --dry-run   
	不要删除任何东西; 只是报告它会删除什么。

   -v   --verbose   
	报告所有移除的对象。
posted @ 2022-11-07 16:34  flxx  阅读(1100)  评论(0编辑  收藏  举报