如何为git pull传入--prune-tags参数?执行提示未知选项错误
根因说明
Git 2.34 版本中,--prune-tags 是git fetch子命令专属支持的参数,该版本的git pull并未实现对这个参数的透传支持,只要你在git pull命令中传入--prune-tags,不管和其他参数怎么组合、放在什么位置,都会触发unknown option 'prune-tags'报错。
你查阅的文档中关于-p/--prune、--prune-tags的剪枝规则描述,针对的是底层fetch逻辑的行为,并不代表2.34版本的git pull入口已经支持直接传入该参数。
另外你提到的显式指定标签名t1的命令可以正常运行,本质是因为这条命令里根本没有传入--prune-tags这个未知选项,只是显式指定了要拉取的refspec,自然不会触发参数校验错误。
解决方案
根据实际场景二选一即可:
- 拆分拉取步骤,先执行带剪枝逻辑的fetch,再执行合并:
# 拉取远程更新,同时剪枝失效的远程分支引用、失效标签 git fetch -p --prune-tags origin # 合并对应远程分支到当前分支,完成常规pull操作 git pull - 升级本地Git版本到2.35.0及以上:从Git 2.35版本开始,
git pull正式支持透传--prune-tags参数到下层fetch逻辑,升级后就可以直接执行git pull --prune --prune-tags这类组合命令,不会再报参数错误。
补充参数行为说明:
常规-p/--prune只会剪枝远程已删除的分支跟踪引用,不会处理标签:
- 标签如果是默认自动跟随、或者通过
--tags选项拉取的,不会被剪枝- 只有通过显式refspec拉取的标签(比如
--mirror克隆的仓库、命令行直接指定标签refspec),才会被纳入剪枝范围;--prune-tags本质就是传入对应标签剪枝refspec的简写。
内容的提问来源于stack exchange,提问作者Piotr Kubiak
相关产品推荐
相关产品推荐

