[英]How to delete branches older than 1 month that was merged to master programmatically in git?
是否有一个命令能够以编程方式删除超过 1 个月的分支并一次性合并到 master 分支?
Building on top of the answer shared by @LazarNikolic ( Delete all branches that are more than X days/weeks old ):建立在@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
Some background:一些背景:
git granch --merged master
to only list branches that have been merged to master
. git granch --merged master
仅列出已合并到master
分支。git log --before
to inspect log entries that are more than 1 month old. git log --before
检查超过 1 个月的日志条目。 If any entries exist, for any merged branch, delete that branch.In my case I'm using git version 2.25.1.就我而言,我使用的是 git 版本 2.25.1。 The answer above did not work for me but this does.
上面的答案对我不起作用,但确实如此。
# 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.