![](/img/trans.png)
[英]How to programmatically find branches that were merged into master with git?
[英]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.