You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何MacOS终端中这段zsh脚本执行报错?

问题原因分析

核心问题:Git命令的参数顺序错误

你遇到的fatal: unrecognized argument错误,本质是**--before/--since这类过滤参数的位置放错了**。

git branch的语法规则明确:

  • --merged [<commit>]中的<commit>(比如你用的master)是位置参数,必须紧跟在--merged之后
  • --before/--since属于传递给底层git for-each-ref的过滤选项,需要放在<commit>参数的前面

举个错误的示例(对应你第一段脚本的问题):

git branch -r --merged master --before="1 month ago" | egrep ...

这里Git会把--before当作git branch命令本身的参数,但git branch并不直接支持该选项,因此抛出“未识别参数”的错误。

正确的写法是把过滤参数放在<commit>之前:

git branch -r --before="1 month ago" --merged master | egrep ...

为什么第二段脚本正常?

你第二段脚本没有指定master这个位置参数,--merged后面直接跟--before/--since,Git会默认将当前分支作为--merged的参考分支,同时正确识别后续的过滤选项,因此能正常运行。


内容的提问来源于stack exchange,提问作者Marcus Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:01:43