我做了3次提交(A,B,C):
$ git log -3 --pretty=oneline
64ffaf1ec379150cb423844bfff7557704c92a4e C
bf89fa3c27dfb9eb3d4c0d83f268902fa828d986 B
a9cae79f45c2494909ff64246182d6a4fde51eda A
如何将C提交合并到提交中?
我想保留提交B,这将反映现在合并的A和C提交中的更改。
我知道我可以使用git rebase将提交合并到先前的提交中。但我不知道如何将特定提交合并到先前的提交中并重写更改历史记录。
答案 0 :(得分:2)
我假设通过" merge"你是说"结合"而不是" merge"的技术用法。在git。在这种情况下,git rebase --interactive
是您的朋友。运行该程序将使您的编辑器显示以下内容:
pick a9cae79 A
pick bf89fa3 B
pick 64ffaf1 C
您需要将其更改为以下内容:
pick a9cae79 A
squash 64ffaf1 C
pick bf89fa3 B
然后保存并退出编辑器。这将组合来自提交A和C的更改,然后提示您编辑提交消息,预先填充来自提交A和C的提交消息。或者,如果要从提交C中丢弃提交消息,请使用{{ 1}}而不是上面的fixup
。