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

如何找出所有存在合并冲突的Git分支?

批量检查Git分支与目标分支的合并冲突

实现方案

可以通过Bash脚本批量遍历本地分支,对每个分支执行预合并检查(不实际提交),自动收集冲突信息后清理现场,无需手动逐个操作。

完整脚本

#!/bin/bash
TARGET_BRANCH="origin/develop"

# 拉取远程最新分支数据,确保检查基准是最新状态
git fetch

# 记录当前所在分支,执行完后切回
original_branch=$(git rev-parse --abbrev-ref HEAD)

# 遍历所有本地分支
for branch in $(git branch --format="%(refname:short)"); do
    echo "=== 检查分支: $branch ==="
    # 切换到待检查分支
    git checkout "$branch" > /dev/null 2>&1

    # 执行预合并并提取冲突文件
    conflict_files=$(git merge --no-commit --no-ff "$TARGET_BRANCH" 2>&1 | awk '$1 == "CONFLICT" {print $NF}')
    
    if [ -n "$conflict_files" ]; then
        echo "存在冲突的文件:"
        echo "$conflict_files"
    else
        echo "无合并冲突"
    fi

    # 终止预合并,清理现场
    git merge --abort > /dev/null 2>&1
    echo ""
done

# 切回初始分支
git checkout "$original_branch" > /dev/null 2>&1

使用步骤

  1. 将脚本保存为check-branch-conflicts.sh
  2. 赋予执行权限:chmod +x check-branch-conflicts.sh
  3. 在Git仓库根目录运行脚本,即可自动遍历所有本地分支,输出与origin/develop的冲突情况

关键说明

  • 脚本执行前请确保工作区无未提交修改,避免分支切换失败
  • 全程不会实际完成合并,所有预合并操作都会被git merge --abort撤销
  • git fetch确保使用远程最新的origin/develop作为检查基准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:02:36