git - 为日志输出中的每个提交创建一个补丁

标签 git

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

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

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

最佳答案

试试这个。我希望现在还不算太晚。

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 递增值会导致以正确的顺序创建补丁文件。

关于git - 为日志输出中的每个提交创建一个补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33772399/

相关文章:

git pull origin master 保留 settings.py

git - 在 Windows/Active Directory 环境中的服务器上配置 GIT

git - 在提交消息中链接到 GitHub 上的问题编号

git - fork GIT 子模块,并更改源 URL。但是 clone 仍然会 pull 旧的源 URL?

git - 如何 "pull request"一个特定的提交

ios - Jenkins 和 CocoaPods

git - 出现未跟踪文件错误时如何切换git分支?

git - Jenkins 配置

git - 如何删除旧的 rebase?

git 删除了一个分支,但更改仍在 master 上进行