如何编辑作为多个分支的共同祖先的提交?

How do I edit a commit that is a common ancestor of multiple branches?

branch A
|
| branch B
| |
|/
|
commit X
|
|
...

如何将提交 X 编辑为 X',以便 A 和 B 在其历史记录中都有 X'? (所有提交和分支都是本地的。)

您必须重写分支历史记录(及其所有含义):

git checkout x
# do changes
git add .
git commit --amend
# now we have X'... let's create a temp branch here
git branch temp
git rebase --onto temp x A # rebase branch A onto temp
git rebase --onto temp x B # rebase branch B onto temp

现在,您可以删除临时文件

git branch -d temp