簡體   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