2017-10-06 98 views
3

我的情況下,類似於這樣這只是我的特性分支有很多更承諾我如何正確地重新綁定如果我的分支有很多提交?

enter image description here

這是在此期間也影響了我的特性分支犯下的錯誤修復。這就是爲什麼我想將我的功能分支重新分配給主人。

我試圖做到這一點與git rebase master(在我的功能分支),最終在混亂。由於我的功能分支提交的提交數量很高,因此rebase需要永久存在,並且我在rebase進程及其所有衝突,更舊的提交以及之後都會丟失概述。

如何在這種情況下正確地做到這一點?我究竟做錯了什麼?

+0

'GIT中變基master'的可破壞feature'分支和'sub_feature' branc之間'的關係H。您最好將'feature'分支合併到'master'中,然後將'feature'分支快速合併到合併提交中。這樣可以清楚地保存提交歷史記錄。 –

回答

0

如果你想變基你的整個歷史,你會以某種方式需要重新發揮每一個人對主的頂部提交,也做一些額外的工作,以保持sub-feature -> feature合併。

我建議不要這樣做。爲了bugfix融入你feature分支,你可以:

  • 合併主(連同其bug修正)爲特徵:

    git checkout feature 
    git merge master 
    

    這將是這樣做的最直接,最git -ish方式

  • 櫻桃挑bugfix提交到特徵:

    git checkout feature 
    git cherry-pick bugFix 
    

    它不是做最徹底的方法,但可以肯定的作品
    後來,你可能要記住,bugFix是存在於兩個分支合併featuremaster的時候,如果你對修改的文件衝突bugfix

  • 第一簡化的featuresub-feature歷史,以及重訂上主簡化版本

+0

我確實跟着合併。這工作沒有進一步的問題。最後,我將合併功能分支回主。我仍然需要得到一個使用git .... –

0

'繼續失去概述'聽起來像是你用Git使用的UI的問題。許多人喜歡終端,它確實非常強大,但git不是一個直觀的方案,終端使情況變得更糟。

我已經使用TortoiseGit完成了較大的數據重組,其中包含多重合並衝突,這些衝突僅導致了表面上合適的挫折級別。

學習一個新的git工具當然是這個問題的一個麻煩的解決方案。然後我會再推薦一個適當的用戶界面作爲基於文本的控制檯的替代方案。這不像終端消失!

第二個選項將合併masterfeature,如果你想有一個良好的線性提交歷史這可能不是一個很好的選擇。

相關問題