我想出了“温和”的表达方式,因为您几乎可以通过以下命令获得想要的结果:
git merge <branch>
git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)
这样做会将所有最终更改保留在内存中,您只需提交它们即可。但问题是,在提交时,git 不再将其视为合并提交。
几乎获得相同结果的另一种方法是合并冲突。一旦解决了所有冲突并提交,git 就知道这是合并提交。
看来您正在寻找
git merge --no-commit <someBranch>
Run Code Online (Sandbox Code Playgroud)
(这里是文档)
这是一种断言这是冲突并且您希望 git 如此对待此合并的方法。
您开始合并,有机会检查和修改您需要的任何内容,然后当您满意并决定提交时,它仍然是提交合并,(至少)有两个父级。
(警告:-n不是此的快捷方式,而是--no-stat)