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

求助:如何列出已合并master且超1年的远程分支并删除?现有命令无效

解决方法

原命令的问题分析

你写的命令逻辑完全搞反了:git log --since="1 year ago"是筛选1年以内有提交记录的分支,所以只要分支近一年有过更新就会被输出,这和你要找「超过1年无更新」的需求正好相反。另外,处理远程分支前最好先同步最新的远程状态,避免操作本地已经过时的分支引用。

正确操作步骤

1. 同步远程分支信息

先拉取最新的远程分支数据,并清理本地已失效的远程分支引用:

git fetch --prune

2. 列出符合条件的远程分支

用以下命令筛选已合并到master、且最后一次提交时间早于1年前的远程分支:

git branch -r --merged master | grep -v "master" | xargs -I {} bash -c 'if ! git log --since="1 year ago" -s -n1 {} > /dev/null; then echo {}; fi'

也可以换更直观的写法,直接匹配最后提交在1年前的分支:

git branch -r --merged master | grep -v "master" | xargs -I {} bash -c 'if git log --until="1 year ago" -s -n1 {} > /dev/null; then echo {}; fi'

3. 删除符合条件的远程分支

确认列出的分支无误后,把上面命令里的echo {}替换成删除指令即可:

git branch -r --merged master | grep -v "master" | xargs -I {} bash -c 'if ! git log --since="1 year ago" -s -n1 {} > /dev/null; then git push origin --delete {}; fi'

重要提示

  • 执行删除前务必通过「列出分支」的命令反复确认列表,避免误删重要分支
  • 如果你的仓库默认主分支是main而非master,记得把命令里的master替换成main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:35:53