繁体   English   中英

如何删除在 git 中以编程方式合并到 master 的超过 1 个月的分支?

[英]How to delete branches older than 1 month that was merged to master programmatically in git?

是否有一个命令能够以编程方式删除超过 1 个月的分支并一次性合并到 master 分支?

建立在@LazarNikolic 分享的答案之上( 删除所有超过 X 天/周的分支):

for k in $(git branch --merged master | sed /\*/d); do 
  if [ -n "$(git log -1 --before='1 month ago' -s $k)" ]; then
    git branch -D $k
  fi
done

一些背景:

  • git granch --merged master仅列出已合并到master分支。
  • git log --before检查超过 1 个月的日志条目。 如果存在任何条目,则对于任何合并的分支,删除该分支。

就我而言,我使用的是 git 版本 2.25.1。 上面的答案对我不起作用,但确实如此。

# Purge branches older than 1 month
for k in $(git branch | sed /\*/d)
do 
    log "Found branch $k"
    if [ -n "$(git log -1 --before='1 month ago' --grep='$k')" ]
    then
        git push -d origin $k &> /dev/null
        git branch -d $k &> /dev/null
        log "Purged branch $k"
    fi
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM