git rebase 问题重新排序

git rebase issue reordering

我在变基 git 提交时遇到问题。问题是:

pick A
pick B <- mine
pick C 
pick D
pick E <- mine
pick F <- mine

我想将所有提交压缩为一个。我打算做类似的事情:

pick A
pick C 
pick D
pick B <- mine
squash E <- mine
squash F <- mine

但这没有用,因为如果我执行此 git rebase,提交 A、C 和 D 也将是我的。如果我只是删除从 A 到 D 的行,只留下:

pick B <- mine
squash E <- mine
squash F <- mine

提交 A、C 和 D 将被删除。我该如何处理?

谢谢

How can I rebase a commit made by another author without adding myself as the committer? 中所述,您可以尝试更改 GIT_COMMITTER_NAME/EMAIL 变量,但这将适用于 all 提交重新定位。

另一种方法是执行变基,然后使用 git filter-branch 完成它以仅更改 ACD

git filter-branch --commit-filter \
  'export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; \
   export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; \
   export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; \
   git commit-tree "$@"' -- D..HEAD