假设我有4个分支:part1,part2,part3和master。第1部分有1个提交(第一次提交),第2部分有2个提交(第一次提交,第二次提交),第3部分有3次提交(第一次,第二次和第三次提交)。我想对第1部分中的第一个提交进行一些更改,并在其他分支的其他提交中反映这些更改。最快的方法是什么?
答案 0 :(得分:0)
不幸的是,我无法想到任何可以让你对part1
分支中的第一个提交进行更改并让它自动更新其他3个分支中的第一个提交的灵丹妙药。主要原因是第一次提交在所有4个分支中实际上是不同的。您可以通过检查这些分支中第一次提交的SHA-1哈希来说服自己。
话虽这么说,如果你想重写第一次提交的历史记录,那么你可以做一个交互式的rebase。以下是如何为part3
分支执行此操作的示例:
git rebase -i HEAD~3
这会提示您使用如下所示的屏幕:
pick dkj398u third commit message
pick l2mnx73 second commit message
edit 36e74bn first commit message
请注意,我已将第一次提交时的操作更改为edit
。当您保存此文件并离开编辑器时,Git将运行rebase,但将在第一次提交时停止。这将使您有机会进行所需的更改。在此之后,您可以提交这些更改并通过以下方式继续rebase:
git rebase --continue
您可以对其余分支重复此过程。为了将来参考,请注意,如果第一次提交是 all 分支的最新提交,那么您可以在所有这些提交上使用git commit --amend
来修改提交并使用rebase
答案 1 :(得分:-1)
您可以使用 git rebase ,例如,如果您想修改回提交 baa643cd ,请运行
$ git rebase --interactive baa643cd
在默认编辑器中,修改'选择'编辑'在您要修改其提交的行中。进行更改,然后使用之前的相同消息提交它们:
$ git commit --all --amend --no-edit
修改提交,然后修改
$ git rebase --continue
返回上一个头部提交。