用git rebase。它是Git中的通用“take commit(s)and plop it / them on a different parent(base)”命令。但是要注意一些事情:由于提交SHA涉及其父项,因此当您更改给定提交的父项时,其SHA将更改 - 在开发行中将更改其后的所有提交(比它更新)的SHA也将更改。如果您正在与其他人合作,并且您已经将提交的问题公开推送到他们撤回的地方,那么修改提交可能是一个坏主意™。这是由于#1,因此在尝试弄清楚由于您的SHA不再与“相同”提交相匹配时发生的事情时,其他用户的存储库将会遇到混淆。(有关详细信息,请参阅链接手册页中的“从上游重新恢复”部分。)也就是说,如果你目前在一个分支上有一些你希望转移到新父级的提交,它看起来像这样:git rebase --onto <new-parent> <old-parent>这会将当前分支之后 <old-parent>的所有内容移动到顶部<new-parent>。