我在基于git-flow的环境中工作。 我们(和团队一起)决定不再删除远程分支机构一段时间。如何从远程中删除过去X天没有提交的所有功能分支。我猜它可能是一些oneliner?
根据:How can I get a list of git branches, ordered by most recent commit?我可以按最后提交日期排序分支。
在这里:How to clone all remote branches in Git?我可以克隆所有远程分支。
我可以避免拉动所有远程分支进行此类清理吗?
答案 0 :(得分:1)
您可以避免拉动所有远程分支。
这将为您提供所有远程功能分支,按commiterdate排序,它将显示上次提交的日期,谁是提交者和分支的短名称。
git for-each-ref --sort=-committerdate refs/remotes/origin/feature --format='%(committerdate:short) %(authorname) %(refname:short)'
或者您可以显示相对于今天的committerdate
git for-each-ref --sort=-committerdate refs/remotes/origin/feature --format='%(committerdate:relative) %(authorname) %(refname:short)'
您所要做的就是选择要删除的分支并执行此操作。
git push origin :feature/newfeature
创建一个oneliner可能是可能的,但我认为用你喜欢的任何语言编写一个小脚本会更容易。