2013-10-29 153 views
4

如何將一個分支合併到另外兩個分支中?Git將一個分支併入兩個其他分支

所以這裏是我們的場景:我們使用兩個分支主生產和UAT測試目的。 所有本地開發都是在由Master創建的新分支上完成的,因此在開始創建任何東西之前,我們創建一個關於master的分支,提交併將其推送到origin/master。 對於更大的項目,我們使用UAT進行測試。

我有一個分支,準備好進行測試,然後推送到生產。我如何將該分支移動到UAT,以便人們可以測試它,並且一旦測試從本地計算機或從UAT移動到同一分支到Master?

+1

這是一個有趣的問題?答案取決於您的組織使用的工作流程。在某些組織中,您可能會推送origin/UAT,然後您或其他人會從UAT合併到master(但聽起來像是一個糟糕的工作流程)。在其他組織中,您可能會在服務器上創建一個特定於您正在進行的工作的新分支,在那裏有人會嘗試該分支並將其合併到別處。您的最佳答案將來自向您工作的人詢問您的網站政策。 – mah

回答

7

這正是git對你有用的!從主人的分支開始你的發展,我們稱之爲「特徵」。然後,當你準備好測試,提交更改到您的特性分支並執行以下操作:

git checkout UAT 
git merge Feature 

TEST TEST TEST 

git checkout master 
git merge Feature 
git push origin master 

這將讓你的測試代碼爲兩個UAT和主分支

+0

假設在'Feature'上工作之前'master'和'UAT'之間已經存在一些差異。 (比如說UAT沒有一些主人的承諾)。在處理'Feature'之後,'git checkout UAT,git merge Feature'是否將該前面的差異合併到UAT中呢? – huggie

+0

我檢查過它,它確實。 – huggie

0

你可以使用git cherry-pick將分支添加到你的UAT分支。

+0

櫻桃採摘的問題在於,只有櫻桃採摘和不採摘的能見度非常有限。這可能是大型分支機構中的一個問題,因爲多個人正在處理這個問題。根據我的經驗,合併在這種情況下要好很多 – ChrisWue