簡體   English   中英

如何用實驗分支替換master分支

[英]How to replace master branch with experiment branch

我有兩個分支:主人和實驗。 它們都是分開進化而且現在非常不同。 現在我准備讓實驗分支我的主分支。

如果我試試

git checkout master
git merge experiment

我得到了大量的錯誤。

在沒有失去實驗分支的所有歷史的情況下,讓實驗分支成為主人的最簡單方法是什么。

我已經創建了一個master分支的備份,就像這樣的1.0版

git checkout master
git checkout -b release_1

假設這些是私有分支(即沒有其他人正在處理它們),您可以將master設置為像這樣的experiment

git checkout master
git reset --hard experiment

如果這些是公共分支,你可能想要合並和解決沖突,正如Jefromi解釋的那樣

這里有一些可能性,具體取決於“替換”的含義。 你幾乎肯定采取正確的方法開始 - 合並通常是要走的路。 你看到的“錯誤”是合並沖突,大概是。 如果您確定知道,只要發生沖突,您希望使用實驗分支中的版本,您可以:

# resolve conflicts by taking the version from experimental
# non-conflicting content is merged normally
git checkout master
git merge -Xtheirs experimental

如果你想在實驗中使用該版本的所有內容 ,而不僅僅是存在沖突的地方,那么有很多方法(實際上沒有合並策略)。 最簡單的:

# do the merge the other way around
git checkout experimental
git merge -s ours master
git checkout master
git merge experimental

# do the merge the right way
git checkout master
git merge --no-commit experimental  # merge, but stop before committing
git checkout experimental .         # check out content, but don't switch branch
git commit                          # commit the merge

其他人建議的方式( reset --hardbranch -M )會起作用,但由於它們不會創建合並提交,因此主分支以非快速方式移動,可能會導致其他人頭痛誰需要從這個回購。 一般來說,只有在未發布這些分支時,我才會說這是正確的答案。

您可以重命名您的分支(來自實驗): git branch -M master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM