2014-09-03 569 views
1

在一個共同的(基於GIT-)開發工作流程,一個維護一個master分支和next(或dev)分支,它被用於測試目的:如何避免git分支被合併到另一個分支?

  • 功能分支從master開始和被合併到next爲測試。如果認爲穩定,功能分支可以合併到master
  • master定期合併到next
  • next定期倒帶(比如,發行後)。
  • next分支應該永遠不會被合併到master分支

能夠自動防止next合併爲master,直接或通過基於next另一個分支這將是有益的。 如何使用git完成此操作?

注意:如this question中所述,可以使用git掛鉤來防止在可以完全訪問的遠程存儲庫上執行這些類型的合併。然而,對於像BitBucket或GitHub這樣的服務來說,這似乎是不可能的,因此我尋求一種可以與本地存儲庫一起使用的解決方案,或者可以與只具有有限管理訪問權的遠程存儲庫一起使用的解決方案。

+0

你爲什麼不在本地安裝鉤子? – 2014-09-03 15:07:41

+0

鏈接中的鉤子是一個更新鉤子,它只對遠程倉庫有意義。也許這很簡單,但是如何將其轉化爲本地鉤子? – 2014-09-03 19:30:04

+1

這似乎是一個奇妙的問題,我也需要一個答案。這是非常非常令人不安的,它沒有更多的關注和基於鉤子的答案,因爲安全使用這個工作流程似乎是至關重要的。我想要這樣做,這使我的團隊花費了一堆時間和煩惱,完全按照OP描述的方式(通過「通過另一個分支」變體)。 – Benjohn 2015-11-19 15:42:41

回答

1

當你真的想使用Github/Bitbucket,那麼不要給任何人寫你的repo的訪問權限。只接受拉取請求。這樣,你可以檢查合併它的請求,如果你看到你不想要的東西,就拒絕它們。

一種自動執行此操作的方法是創建一個本地回購,添加一個執行檢查的鉤子,然後將拉取請求拉入新的本地「驗證」回購(這不應該是您的正常工作回購,所以您總是可以扔掉它)。