Szukam instalacji serwera git, aby udostępniać projekty mojemu zespołowi.
Możesz po prostu użyć git.
Aby mieć serwer git, jedyną rzeczą, której potrzebujesz na serwerze zdalnym, jest git. Jeśli nie potrzebujesz szczegółowych uprawnień (udostępnianie tylko zespołowi sugeruje, że jest to możliwe) ani żadnych dodatkowych funkcji, nie potrzebujesz gitolite ani podobnego.
Rozwiązanie bez instalacji
Jeśli git jest dostępny na zdalnym serwerze, możesz teraz zrobić to, o co prosisz, nie robiąc nic
ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare
Lokalnie:
cd projects/are/here/project
git remote add origin [user@]server:repos/are/here/project.git
git push -u origin master
Konfiguracja serwera git jest łatwa.
Jeśli chcesz robić rzeczy z dedykowanym użytkownikiem git, dokumenty dotyczące konfigurowania serwera git są krótkie - ponieważ jest to naprawdę dość łatwe.
W podsumowaniu:
- Zainstaluj git
- Utwórz użytkownika o nazwie git
- Dodaj klucze publiczne swoje i swojego zespołu do
.ssh/authorized_keys
pliku użytkownika git
- Zmień powłokę użytkownika git na
git-shell
- Utwórz repozytoria na serwerze
- zacznij git pull / pushing do [email protected]
Tylko różnica między pomocą dedykowanego użytkownikowi git i nie jest to, że jeśli konfiguracja użytkownik git używać git-shell
nie pozwoli sobie robić nic innego. Jednak pod względem działania jako serwer git jest identyczny z rozwiązaniem bez instalacji
git push -u origin master
i możesz użyćgit push
po nim. Wolę gito *, ponieważ moim zdaniem nikt nie uzyskując dostępu do repozytorium nie powinien przejmować się bezwzględną ścieżką, jaką ma w zdalnym systemie./home/git/
URL, aby uzyskać dostęp do projektugit@server:project.git
.Główna różnica polega na tym, że gitoza jest już przestarzała i nie jest już aktywnie utrzymywana.
Gitolite jest znacznie bardziej kompletny i właśnie wydał trzecią wersję .
Jego najciekawszą funkcją jest wirtualne odniesienie (w skrócie VREF), które pozwala zadeklarować tyle haków aktualizacji, ile chcesz, co pozwala ograniczyć push przez:
dir / file name :
Powiedzmy, że nie chcesz, aby młodsi programiści wypychali zmiany do pliku Makefile, ponieważ jest on dość złożony:
- VREF/NAME/Makefile = @junior-devs
liczba nowych plików :
Powiedzmy, że nie chcesz, aby młodsi programiści wypychali więcej niż 9 plików na zatwierdzenie, ponieważ chcesz, aby robili małe zatwierdzenia:
- VREF/COUNT/9/NEWFILES = @junior-devs
zaawansowane wykrywanie typów plików :
czasami plik ma standardowe rozszerzenie (którego nie można „gitignore”), ale w rzeczywistości jest ono generowane automatycznie. Oto jeden sposób, aby to złapać:
- VREF/FILETYPE/AUTOGENERATED = @all
Zobacz,
src/VREF/FILETETYPE
aby zobaczyć mechanizm wykrywania.sprawdzanie adresu e-mail autora :
Niektórzy chcą się upewnić, że „możesz przesyłać tylko własne zatwierdzenia”.
- VREF/EMAIL-CHECK = @all
Zobacz
src/VREF/EMAIL-CHECK
.głosowanie na zatwierdzeń :
Podstawowa implementacja głosowania na zatwierdzenie jest zaskakująco prosta:
- VREF/EMAIL-CHECK = @all
.# 2 votes required to push master, but trusted devs don't have this restriction
# RW+ VREF/VOTES/2/master = @trusted-devs
# - VREF/VOTES/2/master = @devs
Zobacz
src/VREF/VOTES
realizację.i tak dalej...
źródło
Tylko boczna uwaga. Możesz również użyć Gerrit do swoich potrzeb:
Przegląd kodu Gerrit
Po pierwsze wydaje się, że Gerrit jest używany do przeglądu kodu, ale w rzeczywistości można go również używać do zarządzania użytkownikami i nadawania im dobrze zdefiniowanych uprawnień. Możesz ominąć przegląd kodu (poprzez kontrolę dostępu ) i używać go tylko do zarządzania projektami i kluczami SSH. Gerrit ma naprawdę silny mechanizm kontroli dostępu:
Kontrola dostępu Gerrit
Możesz ograniczyć push dla dowolnych gałęzi, tagów lub czegokolwiek, co możesz sobie wyobrazić, co jest zdefiniowane w dokumencie kontroli dostępu.
źródło
Aby uzyskać jeszcze szybsze i bardziej brudne rozwiązanie, po prostu użyj git daemon i przejdź do komunikacji peer-to-peer. Oto artykuł o tym.
Edycja: zdaję sobie sprawę, że to nie odpowiada ściśle na pytanie OP. Umieszczam to tutaj głównie dla tych, jak ja, którzy natknęli się na to, szukając słabego i brudnego sposobu na udostępnianie kodu, dopóki nie zostanie skonfigurowane korporacyjne konto github.
źródło
Przez jakiś czas kręciłem się wokół, aby uzyskać serwer git działający z dostępem LDAP, drobnoziarnistą kontrolą dostępu itp ... Znalazłem rewelację: Użyj Gitlab :
jeśli chcesz szybką i szybką metodę instalacji: użyj instalatora bitnami
źródło