當你創建一個新的分支時,你基本上可以並行工作。但是,無論何時合併(如https://stackoverflow.com/a/38203822/3906760中所述),功能分支中的所有更改都將集成到當前分支中。在這一點上,你有一個同步點,以某種方式將你的改變放到你當前分支(主)的歷史記錄中。 - 爲了防止在兩個分支上編輯文件,可能會有衝突,需要在額外提交完成合並之前將其解除。
如果您的master
分支沒有額外的提交(參見圖1),則正常的合併將導致直線不能從主分支上的任何提交(主分支標籤將被分配給功能分支提交,參見圖2)。如果你想在日誌中看到一條平行的線,並且這條線通過合併提交(一個提交有兩個父代而不是一個,參見圖3)光學合併到主分支中,則需要啓用「No fast forward 「合併選項。 - 如果主分支上有並行提交,您將始終得到合併提交(除非您選擇「僅快進」)。 - 就像一個邊節點:圖片2和3中的所有文件都有相同的內容,唯一的區別在於git中的元數據。
此外,還有一些人不喜歡這種提交在視覺上被交錯的截圖。從git的角度來看,正常的合併非常好。但是,如果您想要提交一系列的提交,則需要在要合併您的更改的分支之上重新分配功能分支(然後以圖片1爲例)。之後,合併重組分支(作爲快速合併或非快速合併)。
爲了使你的歷史線性的「只是」通過重置主上次提交(平行之一,參見圖4)與「硬重置」恢復合併。然後簽出你的特性分支,並將它重新綁定到主控制器上(點擊日誌對話框中的主分支,然後點擊「Rebase ... on this ...」),然後你有圖1的情況,你可以再次合併。
圖片1.在reorder-commits
分公司沒有簡單的平行發展承諾在master
:
圖片2.合併reorder-commits
爲master
使用默認選項(即快進合併) :
圖片3.合併reorder-commits
爲master
與「非快進」的選項,注意合併與提交「合併分支......」消息,兩家母公司承諾:
圖片4.進行歷史線性的,通過「復原」你的分支(硬)將master
分支重新設置到它的舊位置。
您的歷史不是線性外觀。看到「刪除的MWB文件...」的提交 – MrTux
@MrTux我做了一個有關gitIgnore的衝突。這似乎與你強調的那個有關。我可以修復嗎? –