2013-08-29 16 views
29

Mam prywatne repozytorium Git na koncie firmy GitHub i nie chcę, aby ktokolwiek naciskał na niektóre gałęzie (np. Master, develop i beta lub według wzorca). Próbowałem także zdefiniować kilka haczyków, ale chcę, żeby to było zrobione na GitHub i nie zrobione z hakiem pre-push na klientach.Wyłączanie pushowania do określonych gałęzi na GitHub

więc wyjaśnić mój problem po prostu chcę:

git push origin develop 

zostać odrzucone przez serwer (który jest GitHub) ze względu na nazwę oddziału, ale nie chcę czek klienta poprzez wstępne -Proszę, naprawdę chcę, żeby GitHub zrobił czek i odmówił.

Również jeśli możliwe jest zezwolenie tylko niektórym użytkownikom, ale na początku wystarczy je wyłączyć.

+0

Nie znalazłem jeszcze jednoznacznej odpowiedzi na to pytanie. – javadba

+0

@javadba, spójrz na koniec mojej własnej odpowiedzi, nie jest możliwe posiadanie różnych uprawnień dla różnych gałęzi na GitHub od dzisiaj. – Huafu

Odpowiedz

24

OK Otrzymałem odpowiedź od IRC po długiej rozmowie. Będę musiał pracować z widłami i prośbami o ściąganie lub dodawać pre-pushowe haki na każdym komputerze dewelopera, ponieważ GitHub nie zezwala na uprawnienia oddziału ani wstępne publikowanie anulowania haków. Oto część odpowiedzi, którą otrzymałem:

Rozwidlaj repozytorium. wówczas programista może pracować na własnej wersji repozytorium i nie musi martwić się o popełnienie błędu w niewłaściwym oddziale. A potem ktoś z wyższych sfer zawsze może połączyć się z każdą gałęzią, w którą należy się zaangażować.

Tak, ale jesteśmy firmą i nie chcemy, aby wszyscy nasi deweloperzy mają widelce

Dlaczego nie?

Cóż, powinny one być w stanie popchnąć ich oddział na wspólne repo do pracy z innymi twórcami na tej samej funkcji, na przykład.

Przeczytać https://help.github.com/articles/using-pull-requests. Nadal możesz wysyłać poprawki między wieloma widłami. Jest to model, który został zbudowany na git

wiem, ale chcę, aby móc szybko zobaczyć w centralnej drodze rzeczywistej pracy na dowolnej funkcji/poprawki, ...

Aby wyciąć krótka historia: GitHub nie obsługuje uprawnień dla poszczególnych oddziałów.

+0

Bitbucket ma także * uprawnienia oddziału * teraz – TheVillageIdiot

4

Haczyki, których szukasz, to: pre-receive i update - pierwszy z nich jest uruchamiany raz za naciśnięcie, drugi po każdym odgałęzieniu za naciśnięcie; ale co ważniejsze, są to haki na stronie serwera.

+0

Tak, dziękuję, ale co powinienem podłączyć na tym haczyku, miałem na myśli, że istnieje wiele wtyczek i nie wiem, którego użyć. A może poszedłem na niewłaściwą stronę? (i domyślam się, że będę musiał użyć aktualizacji na wypadek, gdyby pchanie odbywało się w wielu oddziałach). – Huafu

+0

Skrypty zostają przekazane, aby ref został pchnięty. Możesz zadzwonić na 'git rev-list --pretty = format', aby otrzymać email/nazwę - sprawdź pomoc dla rev-list dla formatu. –

+0

Możesz również rozważyć wcześniejsze otrzymanie wiadomości - jeśli użytkownik próbuje przekazać do oddziału, do którego jest dozwolony, a także za jednego, nie jest w tym samym czasie, czy bierzesz dozwoloną lub odrzucasz tę partię? –

7

Wiem, że ten wpis jest dość stary, ale wierzę, że może on nadal pomóc niektórym z was, którzy szukają odpowiedzi.

Cóż, teraz jest to możliwe na GitHub.
Ostatnio GitHub wprowadziliśmy funkcję Protected Branches, co sprawia, że ​​jest to możliwe:

Chronione gałęzie zablokować kilka cech Git na gałęzi że repozytorium administrator zdecyduje się chronić. Zabezpieczona Branża:

  • nie można usunąć
  • Nie można mieć do niego zmiany scalone aż wymaganych kontroli stanu przechodzą

    • nie może być siłą pchnął
    • Nie można mieć zmiany połączyły się to aż wymagane przeglądy są zatwierdzone
    • nie mogą być edytowane lub mieć do niego pliki przesłane z internetu
  • Powodzenia.

    +3

    Dzięki, ale chronione gałęzie są tam od jakiegoś czasu, a wciąż ludzie mogą do tego popchnąć. Nie mogą wymuszać popychania, ale mogą pchać: -/ – Huafu

    +0

    Właśnie to przetestowałem, a kiedy włączysz chronione gałęzie, nie możesz już wepchnąć się bezpośrednio do tej gałęzi, tylko przez żądanie ciągnięcia. Możesz również wymagać od administratorów, aby zachowywali się w ten sam sposób. –

    +0

    Mam mistrza i rozwijam się pod ochroną, a do wczoraj wciąż mogłem naciskać na niego bezpośrednio. Sprawdzę dwukrotnie konfigurację na moim komputerze. Dzięki! – Huafu

    Powiązane problemy