在我们的团队中,我们保留主分支和开发分支的仅快进合并策略,以防止合并提交地狱:

合并(或重新设置基础然后合并)后,我不会删除其主题分支,因此最终会有大量此类分支。我可以删除一些:
git branch --merged
Run Code Online (Sandbox Code Playgroud)
这只会向我显示尚未在合并之前重新设置基础的那些。其中有一些我可以清理它们。
我正在寻找一些策略,脚本或提示,以应对重新调整的策略。必须有一个脚本,可以以某种循环的方式从master的topic分支中查找所有提交。请分享 ;-)
谢谢
我想要一些非交互式的东西,可以概括为每个分支不止一个提交。需要注意的是,这尚未经过广泛测试,并且在运行此程序时可能比您对克隆状态的假设更多:
重新定位所有可以干净地重新定位的本地分支:
REBASE_TARGET=upstream/master
for branch in $(git for-each-ref --format="%(refname:lstrip=2)" refs/heads/); do
git rebase "$REBASE_TARGET" "$branch" || git rebase --abort
done
Run Code Online (Sandbox Code Playgroud)
删除所有已合并的本地分支:
git branch --format="%(refname:lstrip=2)" --merged | xargs git branch -d
Run Code Online (Sandbox Code Playgroud)
您有一个脚本可以通过以下方式执行此操作:
这将删除已合并到 master 的 rebased 分支。
last_commit_msg="$(git log --oneline --format=%f -1 $branch)"
if [[ "$(git log --oneline --format=%f | grep $last_commit_msg | wc -l)" -eq 1 ]]; then
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |