2017-03-25 53 views
0

我有一個私人git中的系統設置,其中有3個主要分支。 (開發,測試版,發佈版) 提交到開發(這是我的主分支),但在這裏我卡住了。我想推動從開發到測試的具體承諾,然後是從測試版到發佈版的承諾。通過這種方式,我可以打開一個分支並編譯開發版本,或者打開測試版分支並編譯發送給測試版測試人員的版本,或者打開版本分支並編譯一個穩定的公共版本。 它只是我承諾這個私人回購,所以可能會做一些更多的提交沒有準備好beta版分支,而其他提交準備就緒。從分支到分支承諾

我希望這是有道理的,但如果你有一個更好的系統的建議,我可以使用,而不是這個,我很樂意聽到它!

TL; DR:錯誤的工作流程,試圖使其工作,取而代之的是新工作流程。

+1

您對版本控制中的基本工作流程似乎很困惑。通常情況下,您只需從一個分支合併到另一個分支,但不清楚您真正在這裏詢問的內容。 –

+1

聽起來像簡單的'checkout' - >'commit' - >'merge'工作流程 – peter

+0

@TimBiegeleisen對不起,我還不夠清楚,但是讀完我對Guido Garcia的回覆可能會澄清一點,他解決了我的問題。 – Yudowat

回答

1

您可以使用git cherry-pick將「開發」中的某些提交應用到您的某個分支(「beta」,「release」)。另請參閱this question

這解決了你的問題,但你應該考慮你的整個git工作流程。您通常要將提交推送到您的「開發」分支,然後將該分支合併到「測試版」(下一個分支)。查看櫻桃挑選作爲例外,而不是規則。

+1

或者'rebase to'可能是一個選項。 –

+0

我不確定是否櫻桃挑選是我正在尋找與一些承諾,多次採取對方,直到他們到達'釋放'分支,但看到你的答案後,我創建了一個快速測試回購和一切到目前爲止工作良好。謝謝! – Yudowat

+2

根據我的經驗,挑選櫻桃是偶爾使用的東西。如果你發現自己經常在每次衝刺中使用挑選挑戰,那麼這可能表明你的分支工作流程有問題或設計不佳。 –

1

聽起來像你應該使用git merge。我建議你學習使用git的不同工作流程。 Git branching and tagging best practices有一些很棒的建議。

+0

合併不是我正在尋找的,因爲一些未準備好合併到下一級的更改在準備合併之前完成,而iirc將合併所有提交,而不是特定的提交 – Yudowat

+0

@ Yudowat在我看來,'development'分支應該是一個隊列,可以合併準備發佈的功能分支。據推測,您希望一次發佈多個新功能,而不是一次發佈多個新功能。如果功能分支沒有準備好,那麼它可能不應該被合併到開發分支中。 –