“合并”2 Git Branches,忽略原始提交

时间:2014-02-12 09:53:27

标签: git merge branch

我有一个简单的场景:

2个分支:主人 myownb

myownb 位于分支之前,提交了3次提交:

我需要的是“合并”这两个分支,但不是经典模式。

我希望将来自 myownb 的所有这3次提交推送到分支的一次提交(最好使用不同的提交消息)。

或者创建这两个分支之间所有差异的补丁,稍后应用于我的主分支,并按照我的意愿提交。

1 个答案:

答案 0 :(得分:3)

在这个例子中我要做的是执行交互式rebase。这将允许您执行您提到的所有操作(压缩到一次提交,并提供不同的提交消息)。

myownb开始,您会写git rebase -i HEAD~3,因为您在分支master之前提交了3次提交。在出现的对话框中,您应该按顺序看到3个提交,如:

interactive rebase screen

您必须pick一个,以便其他人有一个基础可以被压扁,因为第二次和第三次提交会将pick更改为ssquash。完成后,保存并退出文件。完成后,将弹出提交消息窗口。

enter image description here

在此窗口中,您可以编写单个提交消息。删除它提供的所有通用消息并编写单个提交消息。完成后,保存并退出文件。

回到您的终端,您应该已经准备好了。运行git log你会看到你现在拥有的只是提交给master的提交,然后是你之前提交的那三次提交的一次提交。

完成,git checkout master然后git merge myownb