我有一個簡單的場景:「合併」 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