2017-08-30 37 views
1

我屬於開發團隊,由快速發展的內部開發環境中的五名成員組成(我們開發由其他部門使用的基於Web的解決方案,即一個ERP)。我們目前使用SVN作爲一個具有開發環境和現場環境的項目;開發環境使我們能夠確保功能在推向實時環境之前正在運行。當滿足要求時,我們將更改從開發服務器提交到SVN存儲庫,並將這些特定更改提交到實時服務器。在快節奏的環境中從SVN切換到Git

Current workflow using SVN

我們做測試的開發,直到代碼達到一個穩定點提交。

然而,我們想要切換到Git(我們的很多其他項目都安裝在Git上,我們希望它是一致的)。這是一個挑戰。我們希望能夠輕鬆快捷地使用和跟蹤工作流程。我建議有兩個主要分支供現場(主)和開發人員使用,並在各自的分支中進行每項功能/修復。這使得事情變得更好,但更難以實現,因爲它需要更長的時間,我們對代碼所做的一些更改需要儘快實時推送。

另一個建議是隻有一個dev和live分支。我們將致力於開發部門,確保他們的工作,然後一旦我們對結果感到滿意,將這些文件合併到現場。這個唯一的事情是我無法找到一個體面的方式來實現這種行爲。是否有可能將特定文件從一個分支快速合併到另一個分支?

是否有任何其他git工作流程更適合我們這種環境?

回答

0

兩者的兩點建議您列表可以工作,但兩個工作流可以與下面的工作流程改進:

  • develop分支:所有的開發者在這個分支上工作。當更改準備部署到實時環境時,開發人員可以將其更改推送到livemaster)分支。
  • 功能/修補程序分支:是開發人員在其本地回購中的空頭分支。例如,如果開發人員想要開發新功能或修復錯誤,他可以從develop分支創建本地功能/修復分支。完成工作後,將功能/修補程序分支合併到develop分支中。
  • live/master分支:它用作生產/發佈版本。在develop分支驗證碼後,develop分支可以合併爲live/master分支。

兩個建議之間的差別你列出:

  1. 它也有兩個主要分支(developlive/master)作爲第一個建議,但它只有功能/修補程序分支爲develop分支因爲live/master作爲生產/發佈版本的分支工作。
  2. 此工作流程不直接在develop分支上進行更改。它適用於功能/修補程序分支,然後將更改合併到develop分支中。
+0

感謝您的回答。在開發過程中,總會有特定的文件需要實時推送,但會忽略一些文件(如果它們仍在開發中)。有沒有一種方法可以指定將哪些文件從開發分支合併到主分支中?即一個開發人員創建功能一,另一個開發人員創建功能二。這兩個功能都在開發分支上,但功能需要現在就投入使用。 – driima

+0

這個問題似乎在你的另一篇文章中提出,我在那裏添加了一個答案。您可以讓批准者決定將哪個功能合併到開發分支中。只有合併到'development'中的特性纔會被合併到'master'中(詳細信息,您可以在該答案中查看)。 –