2015-04-25 58 views
5

我在git repo中有一個非常過時的master分支。我所有的工作都在另一個分支完成。將兩者合併的最佳方式是什麼?我不在乎任何東西,它是過時的方式。由於在git中用另一個分支覆蓋所有東西

+0

'git checkout master && git pull && git merge '不接受? – Makoto

回答

8

如果你是罰款失去你的主分支的歷史,你只是讓master指向您當前分支的頭部(你不「覆蓋」 master - 分公司 - 本身):

git checkout yourotherbranch 
git branch -D master 
git checkout -b master 

當然,如果你有一個遠程克隆,你接下來要

git push -f origin master 

諾塔好處:此專門適用於更換整個你的master分支,並拋棄舊的master作爲標題暗示。 否則,你應該罰款git merge master --strategy=ours

+1

感謝您承認替代方案 - 我會想象合併會很好,但如果他們想要替換整個歷史,那完全是另一回事。 – Makoto

3

讓我們假設你的工作是在一個叫做dev分支:

git checkout dev 
git merge --strategy=ours master 
git checkout master 
git merge dev 

合併選項--strategy=ours是指用來取代偏科quote)的舊的發展歷史。

1

一個完整的覆蓋不合並其他內容,它放棄它。

git checkout -B master anotherbranch 

這比刪除並重新創建保留分支設置和reflogs更有優勢。

如果在您的歷史記錄中保留一些行政要求來保留無價值的提交,請按照git merge -s ours [email protected]{1}進行操作。我更喜歡這個序列,因爲它會生成一個不尋常的合併信息,它會提醒掃描--oneline日誌合併是不尋常的。

相關問題