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

如何在Git变基100个提交时自动执行脚本并修改提交信息?

自动化批量修改Git提交:执行脚本并追加原提交SHA

核心方案:使用git rebase --exec批量处理提交

你可以通过自定义脚本结合git rebase的--exec参数,自动对每个提交执行指定操作,无需手动逐个处理:

  1. 创建并准备自定义处理脚本
    在仓库根目录创建process-commit.sh脚本,内容如下:

    #!/bin/bash
    # 运行edit.sh修改目标文件
    ./edit.sh
    # 暂存修改后的文件(替换为你的问题文件路径)
    git add path/to/your/problem-file.ext
    # 获取当前提交(即原提交)的SHA
    ORIG_SHA=$(git rev-parse HEAD)
    # 追加原SHA到提交信息末尾,保留原有提交内容
    git commit --amend --no-edit -m "Original commit SHA: $ORIG_SHA"
    

    给脚本添加执行权限:

    chmod +x process-commit.sh
    
  2. 创建临时分支并执行批量变基
    先切换到分支B,创建临时分支用于处理:

    git checkout B
    git checkout -b temp-processed
    

    执行变基,对分支A之后的所有提交(即你提到的100个提交)批量运行处理脚本:

    git rebase --exec "./process-commit.sh" A
    

    这个命令会自动遍历A之后的每个提交,依次执行:

    • 检出该提交
    • 运行edit.sh修改文件
    • 暂存修改并追加原提交SHA到提交信息
    • 继续处理下一个提交
  3. 验证结果
    处理完成后,你可以通过git log查看每个提交的信息,确认原SHA已追加,且目标文件已被脚本修改:

    git log --oneline temp-processed
    

后续冲突处理

完成上述步骤后,你就可以基于temp-processed分支执行与上游的变基操作:

git rebase --onto upstream/main A temp-processed

由于目标文件已提前与上游修改对齐,冲突概率会大幅降低,此时再通过交互式变基处理剩余冲突即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:23:17