在 Git 中,prune 是用于清理本地仓库中“无效引用”的操作,主要针对那些在远程仓库已被删除,但本地仓库中仍保留的分支引用(remote-tracking branches)。

核心作用

当远程仓库的某些分支被删除后,本地仓库通过 git fetchgit pull 并不会自动删除对应的远程跟踪分支(如 origin/old-branch)。这些“失效”的引用会占用空间且可能干扰判断,prune 就是用来清理它们的。

常用命令及场景

  1. git fetch --prune(推荐)
    拉取远程仓库最新信息的同时,自动清理本地所有已在远程删除的分支引用。
    例:

    git fetch --prune origin  # 针对指定远程仓库(如 origin)执行
    
  2. git remote prune
    单独对某个远程仓库执行清理,不拉取新内容。
    例:

    git remote prune origin  # 清理与 origin 关联的失效引用
    
  3. 查看待清理的引用(不实际删除)
    加上 --dry-run 参数可预览清理效果:

    git remote prune origin --dry-run
    

注意事项

  • prune 仅影响远程跟踪分支(如 origin/xxx),不会删除本地分支(如 xxx)。
  • 定期执行 git fetch --prune 是良好习惯,尤其在多人协作、频繁删除远程分支的场景下,可保持本地仓库引用的准确性。
  • 若需彻底清理本地无用分支,需手动执行 git branch -d <branch-name>(删除已合并分支)或 git branch -D <branch-name>(强制删除未合并分支)。