2013-02-25 67 views
43

這篇文章聽起來很有趣,但我很確定這些圖是錯誤的。 http://guides.beanstalkapp.com/version-control/branching-best-practices.htmlgit與開發,分期和生產分支

它不應該是DEVELOPMENT>STAGING>PRODUCTION

梅傑斯應只在一個方向流動:從自己的分公司或做開發成分期進行測試功能和錯誤修正 。 經過測試,您可以將開發中的這些更改合併到 生產中。

這裏我有點困惑。所以我將舞臺合併到主人或主人到舞臺?

我正在使用名爲SmartGit的客戶端,我對此感到困惑。通常,我爲某個功能創建一個分支,將其提交給它,然後切換到主分支並將其合併到分支(向前)。因此,在這個新的工作流程中,使用Staging and Production創建這兩個額外的分支,然後爲主功能創建一個來自master(aka dev)的分支。提交它,然後切換到分段併合並(轉發)到我的功能分支?這聽起來正確嗎?


其實什麼使這個如此混亂的是,魔豆人站在後面他們非常不規範使用分期(談到自己的圖表在開發過程中,這是不是一個錯誤! https://twitter.com/Beanstalkapp/status/306129447885631488

有決定對魔豆,只是與Github上給忘了。


因爲我張貼這一點,魔豆人拿着我的暗示,並更名爲他們的階段,現在叫發展「穩定」。

+1

您可能希望合併從分段到生產的修復。爲了測試的目的合併分段,然後在測試完成時將開發合併到產品中,可以讓開發人員將更多工作合併到從未合併到分段的生產中。 – wadesworld 2013-02-25 17:06:52

+0

經典分支工作流程並不容易適用於Git,因爲Git中的分支更加輕量級。它們只是指向歷史本身可以在多個方向分支的(單一)提交的指針。這就是爲什麼很難將分支視爲分離開發的「一線」(這也適用於「成功的Git分支模型」中的圖表)。 – poke 2013-02-25 17:35:05

+0

是啊,它不是完全游泳泳道。但我的問題更具體一點:我是否切換到分段併合併到開發中,反之亦然?我對git很陌生,對此感到困惑。也許我應該直接向SmartGit的製造商解決這個問題,我的windows git客戶端。 – 2013-02-25 19:15:20

回答

47

這裏的思考過程是你花大部分時間在development。在開發過程中,您將創建feature分支(關閉development),完成該功能,然後合併回development。然後可以通過合併爲production將其添加到最終生產版本。

有關此方法的更多詳細信息,請參閱A Successful Git Branching Model

+14

+1「成功的Git分支模型」。這基本上已成爲git工作流程的標準。 – 2013-02-25 17:05:18

+6

「一個成功的Git分支模型」對於只涉及少數人的較小項目來說有點複雜。我更喜歡比較簡單的方法,在master分支中開發,在master分支中標記穩定版本,並且如果需要的話,他們有穩定的補丁分支。請參閱http://stackoverflow.com/questions/14858075/set-the-develop-branch-as-the-default-for-a-pull-request/14858295#14858295和http://scottchacon.com/2011/08 /31/github-flow.html – 2013-02-25 20:59:22

+1

謝謝@JosefKufner github流文章非常有幫助 – 2013-03-13 19:09:06

5

我們讓它不同,恕我直言更容易:在master我們正在研究下一個主要版本。每個更大的特徵都會得到自己的分支(派生自主),並且由開發人員定期重新定位(+強制推送)(如果單個開發人員使用此功能,則重新分配只能正常工作)。如果功能完成,它將被重新綁定到主設備上,然後主設備被快速轉發到最新的功能提交。爲了避免重新綁定/強制推送,還可以將主要更改定期合併到特徵分支,並且如果它完成,則將特徵分支合併到主(正常合併或壁球合併)。但恕我直言,這使得功能分支不太清晰,使重新排序/清理提交變得更加困難。

如果有新版本發佈,我們會創建一個側邊分支,例如, release-5只有錯誤得到修復。

+0

我不知道這意味着什麼。 – 2013-02-25 22:01:01

+2

你不明白什麼? – Mot 2013-02-26 17:23:44

0

a post on my blog

的 「gitflow」 從nvie工作流程有兩個問題:它混淆的 茶更改「主」分支的含義,並且不清楚 證明額外的長期分支的成本是合理的。 [012]