我有一个简单的场景:“合并” 2个的Git分支,而忽略原有承诺
2个分支:主和myownb:
myownb领先于主分公司与3提交:
我需要的是“合并”这两个分支,但不是在经典模式。
我想所有这些3个提交从myownb被推因为只有一个提交到主分支(和优选地与不同的提交消息)。
或者创建这两个分支之间所有差异的补丁,稍后应用到我的主分支,并按我的意愿提交。
我有一个简单的场景:“合并” 2个的Git分支,而忽略原有承诺
2个分支:主和myownb:
myownb领先于主分公司与3提交:
我需要的是“合并”这两个分支,但不是在经典模式。
我想所有这些3个提交从myownb被推因为只有一个提交到主分支(和优选地与不同的提交消息)。
或者创建这两个分支之间所有差异的补丁,稍后应用到我的主分支,并按我的意愿提交。
在这种情况下,我会做的是执行交互式底座。这将允许你做你提到的所有事情(挤压到一个提交,并提供一个不同的提交信息)。
从myownb
你会写git rebase -i HEAD~3
,因为当你从master
分支出来时,你提前3次提交。在出现,你应该看到您3个提交为了对话框,像:
你必须pick
一个让其他人都与一个基础被压扁,第二和第三提交更改pick
到s
或squash
。一旦你完成了保存并退出文件。一旦你完成了这个提交消息窗口就会弹出。
在这个窗口中,你就可以写你的单提交信息。删除它提供的所有通用消息并编写单个提交消息。完成之后,保存并退出文件。
回到你的终端,你应该全部设置。运行一个git log
,你会看到你现在拥有的所有提交都是通向主控的提交,然后是一次提交你之前提交的那三个提交。
要完成,git checkout master
然后git merge myownb
这是什么混帐所谓的“南瓜合并”(这实际上不是一个合并的话)直例如:http://stackoverflow.com/q/2427238/ 1256452和http://stackoverflow.com/q/19308790/1256452 – torek