2015-09-06 65 views
1

有兩個分支。主要分支和分支有一個功能。但功能分支與主體衝突。人們告訴我,我應該改變主要特徵分支。依靠主分支

這是否意味着git rebase origin/main(和我在功能分支)或git rebase feature_branch(和我在主分支)?

重要的是,在git merge PRODUCTION期間應該沒有衝突,並且必須通過命令rebase來解決。怎麼樣?

回答

3

這將意味着:

git fetch 
git checkout feature 
git rebase origin/main 

您在更新origin/main的頂部局部feature分支重播。
這給你一個機會來解決本地的任何衝突,然後然後推動功能分支(自從它的歷史發生變化以來,一個git push --force):確保你是唯一一個在該分支上工作的人。

(如aduch提到in the comments,如果有來自origin/main合併到feature之前,那麼git rebase -p origin/main可能需要在理論上。請參閱「How to rebase only the commits after the latest merge?」。
但是,這也意味着,在這種情況下,一個git合併最好是把一個Git重訂,已保留過去增加了複雜合併)

如果你是不是唯一的一個分支上工作,那麼一個替代方案是合併origin/mainfeature,解決任何衝突存在,之前推feature(常規推送)。

+0

我做了三個步驟,然後我解決了衝突。然後我不在任何分支。在提交之前,問我是否想切換到某個分支,我想提交它,所以我切換到了功能分支,實際的東西和功能分支之間存在衝突,我合併了它,現在我在之前的位置。特色分支仍然與主要衝突。 – user3599497

+0

@ user3599497嘗試新克隆中的同一步驟。確保你可以乾淨的結帳功能(應該沒有消息)。然後開始合併。 – VonC

+0

建議不保存「-p」選項來保存合併提交? – axelduch