2012-11-06 21 views
21

Git bash kullanarak şube izinleri ayarlamak mümkün mü? Ana dalda daha sıkı izinler almak istiyorum, bu yüzden bazı insanlar geliştirme dalını kullanabilir ve ona bağlı kalarak ana dalı kendileri değiştiremez.git şube izinleri

Mümkünse bunu yapmaya çalışmak için nasıl giderim?

cevap

21

Git, dalın belirli izinlerine sahip değil. Tüm depoyu read only kişisine ya da bir özel ve bir kamusal depo oluşturabilir ve yalnızca ana depoyu yalnızca ana depoda tutarken geliştirme dalını herkese açık olarak yayınlayabilirsiniz.

Düzenleme: şube belirli izinleri için, Gitolite gibi bir sunucu tarafı yetkilendirme katmanı ihtiyaç - Açıkçası, bu kendi Git sunucu yönetimi gerektirir.

+4

: P github içinde şube kısıtlamalar vardır –

+0

https://help.github.com/articles/about-branch-restrictions/<--- dox –

+9

Sorunun GIT ile ilgili olduğunu vurgulamaya ihtiyacım var, github değil, tamamen farklı bir şey. :) –

4

Bunun gerekli olabileceği tipik bir senaryo, resmi (veya serbest bırakma) şubelere erişimi bir ekipteki bir alt kümeye kısıtlamaktır. Buradaki iyi bir strateji, daha sıkı bir şekilde kontrol edilen bir birincil repo, ve takımdaki herkesin iş kollarına kurmakta ve kullanması için kullanılan başka bir repo olmak üzere iki repoya sahip olabilir. Ve gerektiğinde, çalışma dallarından ana repoya çekin. Tabii ki, ekip yapınızı ve ihtiyaçlarınızı karşılamak için bunu değiştirebilirsiniz.

Bu özellikle github gibi servislerle iyi çalışabilir.

5

Bitbucket, şube kısıtlamasını destekler. Burada bağlantısına bakın:

#!/bin/bash 

# Extract the user email (%ae) from the last commit (author email) 
USER_EMAIL=$(git log -1 --format=format:%ae HEAD) 

# Looping through all the pushed branches 
while read oldrev newrev refname 
do 
    branch=$(git rev-parse --symbolic --abbrev-ref $refname) 
    if [ "master" == "$branch" ] && [ "[email protected]_company.com" != $USER_EMAIL ]; then 
     echo "Naughty naughty!" 
     exit 1 # fail, i.e. reject push 
    fi 
done 

rağmen kullanıcıların kolayca sahte onların git e-posta adresini: https://blog.bitbucket.org/2013/09/16/take-control-with-branch-restrictions/