在日志输出中创建每个提交的补丁

时间:2015-11-18 05:23:31

标签: git

我的情况类似于question。目前这个命令完美地向我展示了我需要的所有提交:

git log --cherry-pick --oneline --no-merges --left-only branchB...branchA

现在,我想创建一个补丁文件,其中包含上述命令中显示的每个提交。我该怎么办?

1 个答案:

答案 0 :(得分:2)

试试这个。我希望现在还为时不晚。

NUM=1
for commit in $(git log --cherry-pick --no-merges --left-only branchB...branchA --reverse --pretty=tformat:"%H")
do
  git format-patch -1 $commit --start-number $NUM
  ((NUM++))
done

--reverse强制git-log以相反的顺序推送结果 - 从最早的一个到最新的一个,"%H"它的格式只包含提交sha1哈希。哈希作为单个(-1)提交提供来创建补丁。具有递增值的--start-number会导致以正确的顺序创建补丁文件。