You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在合并PR并拉取main分支后自动删除本地开发分支

自动删除已合并到main的本地开发分支方案

针对你需要在切换到main分支拉取最新代码后,自动删除已合并的本地开发分支的需求,以下是两种可行方案:

方案一:Git别名一键执行

直接给Git设置自定义别名,将切换分支、拉取代码、删除已合并分支的操作整合为一条命令:

  1. 打开Git配置文件(全局的~/.gitconfig或项目内的.git/config),添加以下内容:
[alias]
  pull-clean = !git checkout main && git pull && git branch --merged main | grep -v "^\* main" | xargs git branch -d
  1. 之后只需在终端执行:
git pull-clean

命令拆解:

  • git checkout main:切换到main分支
  • git pull:拉取远程main分支的最新代码
  • git branch --merged main:列出所有已合并到main分支的本地分支
  • grep -v "^\* main":过滤掉当前正处于的main分支(避免误删)
  • xargs git branch -d:将过滤后的分支名批量传入删除命令,-d是安全删除,仅当分支已合并时才会执行删除,防止误删未合并的分支。

方案二:Shell脚本实现

如果更倾向于用独立脚本,可创建一个shell脚本:

  1. 创建文件git-pull-clean.sh,写入以下内容:
#!/bin/bash

# 切换到main分支,失败则退出
git checkout main || { echo "切换到main分支失败"; exit 1; }

# 拉取最新代码,失败则退出
git pull || { echo "拉取代码失败"; exit 1; }

# 删除已合并到main的本地分支
git branch --merged main | grep -v "^\* main" | xargs git branch -d
  1. 赋予脚本执行权限:
chmod +x git-pull-clean.sh
  1. 可将脚本放到系统PATH目录下(如/usr/local/bin),之后就能在任意项目目录直接运行git-pull-clean.sh。

注意事项

  • 若需要保留某些已合并的本地分支,可修改过滤规则,例如排除名为dev-stable的分支:
    git branch --merged main | grep -v -E "^\* main|dev-stable" | xargs git branch -d
    
  • 如果确定要强制删除分支(即使未合并),可将git branch -d改为git branch -D,但不推荐此操作,避免数据丢失。
  • 该方案仅处理本地分支,不会对BitBucket上的远程分支产生任何影响,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Lushmoney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:04:59