2016-03-25 139 views
3

有沒有辦法鎖定Git分支以便寫入和讀取? 因此,不可以寫入分支機構,也不可以從分支機構克隆,但僅適用於一名建築工程師?鎖定Git分支

下面是這種情況:

的代碼已經被推到了Git倉庫,然後開發製造分支。現在我們的想法是鎖定每個人的主分支,但只有一個人,並且有開發人員從開發分支中克隆並將代碼推回開發分支。

只有一個人 - 建築工程師應該有權訪問主分支。

另外,有沒有一個好的可以與Git一起工作的Gui工具?我們目前使用SourceTree,但它顯示樹和提交是醜陋的。

謝謝。

+0

通常,Git服務器(例如Github或Stash)將允許您防止推送到特定的分支。我看不到從特定分支阻止*拉*的原因。 –

+0

[限制Git分支訪問的方法]的可能的重複(http://stackoverflow.com/questions/8781240/a-way-to-restrict-git-branch-access) – Frxstrem

+0

@OliverCharlesworth,因爲常規開發應該是從開發分支完成。普通開發人員不應該有權訪問主分支。那麼Gui工具呢?有什麼更好的嗎? – Igor

回答

3

Git的工作在倉庫的水平,這意味着如果你可以克隆一個git倉庫,你可以(與它的所有分支)

這意味着讀訪問不能低於回購一級上強制完全複製它(一科)。
所有的回購都可以私有,但這不是git的特性,更多的是在git回購前管理訪問的監聽器(比如Apache服務器或者ssh守護進程以及用戶認證和授權)。

實現完全讀保護,需要兩個回購:

  • 一個主
  • 一個用於開發(通常是主的一個分支)

開發者仍​​然可以訪問儘管通過原始回購,但通過分叉。
對於完全隔離,您需要將第一個回購作爲私有回購,而第二個回收不再是分叉。

但是更一般地,具有(讀)訪問主不是一個壞的做法:

  • 只要非正向推到development分支被阻塞,這意味着所述development分支不是一個底墊可能:任何開發都在該分支上(而不是master
  • 開發人員仍然可以將他們的提交與master進行比較,和/或挑選或合併一些主提交到開發分支,如果他們需要包含一些熱門-fix在master上完成(在下一次合併之前)
+0

@jthill似乎更準確,雖然git本身並不拒絕訪問回購。你可以把聽衆放在拒絕訪問的repo之前,但git本身只是一個版本文件管理器,它的'receive-pack' /'upload-pack'會很高興地接收/傳輸你要求的任何東西。我已經編輯了相應的答案。 – VonC