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

如何获取所有对指定文件引入变更的Git分支列表?

获取对指定文件有未合并变更的Git分支列表

要筛选出所有对目标文件有变更、且领先于main分支的分支(假设已合并分支已删除),可以用以下脚本实现:

for branch in $(git branch --no-merged main | sed 's/^[* ]//'); do
  if git diff main..$branch --name-only | grep -q "your-target-file.txt"; then
    echo $branch
  fi
done

命令解释

  • git branch --no-merged main:列出所有尚未合并到main的分支,这些就是符合“领先于main”要求的分支
  • sed 's/^[* ]//':清理分支列表的格式,去掉开头的星号(当前分支标记)和空格
  • git diff main..$branch --name-only:对比main分支与当前遍历的分支,只输出有差异的文件名
  • grep -q "your-target-file.txt":静默检查差异文件中是否包含目标文件,存在则输出对应的分支名

注意事项

  • 将your-target-file.txt替换为你要检查的实际文件路径(相对或绝对路径均可)
  • 如果需要排除当前分支,可在循环内添加判断:
    if [ "$branch" != "$(git rev-parse --abbrev-ref HEAD)" ]; then
      # 原判断逻辑
    fi
    

内容的提问来源于stack exchange,提问作者jakob-r

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:15:27