2016-09-18 25 views
2

我在Git上維護着一個項目的4個分支,結構如下。在多個相互依賴的git分支上工作

  • 學生
  • 老師
  • 認證

的問題是我創造的 「認證」 分支中的最後,並從該分支添加一些代碼。現在,我切換到「老師」分支繼續工作。但是,我需要在「身份驗證」模塊中添加一些功能才能在「教師」模塊上工作。但是我還沒有完成「認證」模塊來完成合並。用git處理這個問題的正確方法是什麼?謝謝。

+0

提交'PR'或''從authentication' request'拉'master'的。將PR從'authentication'批准到'master',然後將最新的'master'從'master'拖到'teacher'。 「教師」分支 –

+0

領先於「主人」。從「主人」拉到「老師」可以嗎? – swdon

+1

你可以從'authentication'分支挑選'特定的提交到'teacher'分支。 – dangom

回答

3

聽起來像你的分支相互依賴,這是你的問題。分支機構的依賴性可能是由分支機構越來越大,包含的東西太多造成的。

這意味着您可以從早期合併較小的東西中受益!然而,看起來你不想合併teacherstudent到任何一個「完成」之前。

聽起來像您需要一個地方,您可以合併已完成的工作,但可能尚未準備好發佈

如果你正在考慮master是隻有完成功能的分支,也許你需要另一個叫做develop的分支,允許它沒有完整的功能,但是合併了更小的步驟?

然後,你可以這樣做:

  • 做好相關teacher一些功能,它們合併develop
  • 開始一個新的分支爲student - 相關的功能,將它們合併到開發過
  • 重複直到develop看起來像你可以釋放的東西
  • 合併developmaster並添加標籤新版本

這意味着無論您在teacher工作期間所做的系統改進如何,他們在student工作期間也會很快爲您提供幫助。同樣適用於其他功能,如身份驗證。

不要讓您的功能分支停留幾天以上。
未合併的工作是浪費!

更多閱讀:A successful Git branching model

+1

謝謝,抽空解釋一下。我希望能爲Git的最佳實踐提供這樣的明確解釋。 – swdon