Git 🌙
Chapters â–Ÿ 2nd Edition

4.2 Git pÄ servern - Skaffa Git pÄ en server

Skaffa Git pÄ en server

Nu kommer vi behandla hur man konfigurerar en GittjÀnst som anvÀnder dessa protokoll pÄ din egen server.

Notera

HÀr kommer vi demonstrera kommandon och steg som krÀvs för en grundlig och förenklad installation pÄ en Linuxbaserad server, men det Àr ocksÄ möjligt att köra dessa pÄ en Mac- eller Windowsserver. Att konfigurera en produktionsserver inom din infrastruktur kommer sÀkerligen att medföra skillnader i sÀkerhetsÄtgÀrder och operativsystemsverktyg, men förhoppningsvis kommer detta ge dig en god inblick av vad som Àr involverat.

För att börja konfigurera en Gitserver mĂ„ste du exportera ett existerande repo till ett nytt bart repo — ett repo som inte innehĂ„ller en arbetskatalog. Detta Ă€r i regel okomplicerat att göra. För att klona ditt repo för att skapa ett nytt bart repo, kör du clone-kommandot med flaggan --bare. Av konvention namnges alltid en bar repokatalog med suffixet .git, sĂ„hĂ€r:

$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.

Du ska nu ha en kopia av Gitkatalogens data i din my_project.git-katalog.

Detta Àr ungefÀr likvÀdigt med

$ cp -Rf my_project/.git my_project.git

Det finns ett antal mindre skillnader i konfigurationsfiilen, men för ditt ÀndamÄl Àr detta nÀra samma sak. Den tar Gitrepot i sig sjÀlv, utan arbetstrÀd, och skapar en katalog specifikt för det.

LÀgga det Bara repot pÄ en server

Nu nÀr du har en bar kopia av dit repo Àr allt du behöver göra att lÀgga den pÄ en server och konfigurera dina protokoll. Antag att du har konfigurerat en server som kallas git.example.com dit du har SSH-Ätkomst och du vill spara alla dina Gitrepon under katalogen /srv/git. Anta att /srv/git finns pÄ servern kan du konfigurera ditt nya repo genom att bara kopiera över ditt bara repo:

$ scp -r my_project.git user@git.example.com:/srv/git

NÀr detta Àr gjort, kan andra anvÀndare som har SSH-baserad lÀsrÀttighet till /srv/git-katalogen pÄ den servern klona ditt repo genom

$ git clone user@git.example.com:/srv/git/my_project.git

Om en anvÀndare SSH:ar in till en server och skrivrÀttigheter i /srv/git/my_project.git-katalogen kommer de ocksÄ automatiskt ha rÀttigheter att skicka upp data till repot.

Gitt kommer automatiskt lÀgga till gruppskrivrÀttigheter till ett repo ordentligt om du kör git init med flaggan --shared. Notera att du inte kommer att förstöra nÄgra versioner, referenser, etc. genom att göra detta.

$ ssh user@git.example.com
$ cd /srv/git/my_project.git
$ git init --bare --shared

Du ser hur enkelt det Àr att ta ditt Gitrrepo, skapa en bar kopia och placera det pÄ en server dit du och dina medarbetare har SSH-Ätkomst. Nu Àr du redo att samarbeta pÄ samma projekt.

Det Ă€r viktigt att poĂ€ngera att detta bokstavligen Ă€r allt du behöver göra för att köra en anvĂ€ndbar Gitserver dit flera anvĂ€ndare har Ă„tkomst — bara lĂ€gg till SSH-tillĂ„tna anvĂ€ndare pĂ„ en server och lĂ€gg ett bart repo nĂ„nstans dit alla anvĂ€ndare har lĂ€s- och skrivrĂ€ttigheter. Du Ă€r fĂ€rdig — inget annat behövs.

I kommande avsnitt kommer du fÄ se hur man kan utöka till mera sofistikerade konfigurationer. Diskussioner kommer inkludera att inte behöva skapa anvÀndarkonto för varje anvÀndare, lÀgga till publika lÀsrÀttigheter till repon och konfigurera grafiska webbgrÀnssnitt och mer. Ha dock alltid i Ätanke att för att samarbeta med ett par mÀnniskor pÄ ett privat projekt, Àr allt du behöver enn SSH-server och ett bart repo.

SmÄ uppsÀttningar

Om du vill köra i liten skala eller bara testar Git i din organisation och bara har ett fÄtal utvecklare kan det vara enkelt för dig. En av de mest komplicerade aspekterna av att konfigurera en Gitserver Àr anvÀndarhantering. Om du vill att nÄgra repon skall vara enbart lÀsbara för nÄgra anvÀndare men Àven skrivbara för andra sÄ kan behörighets- och rÀttighetskonfiguration vara lite svÄrare att hantera.

SSH-Ă„tkomst

Om du har en server dit alla dina utveckare redan har SSH-Ätkomst Àr det generellt sett enklare att konfigurera ditt första repo dÀr, eftersom du nÀstan inte behöver göra nÄgot (som vi beskrev i senaste avsnittet). Om du vill ha mer komplex rÀttighetssyrning pÄ dina repon kan du hantera det med filsystemsrÀttigheter pÄ din servers operativsystem.

Om du vill lÀgga dina repon pÄ en server som inte har anvÀndarkonton för alla i ditt team som du vill ge skrivrÀttigheter till, mÄste du sÀtta upp SSH-Ätkomst för dem. Vi antar att om du har en server att göra dett detta pÄ, har du redan en SSH-server installerad och det Àr sÄ du kommer Ät servern.

Det finns nÄgra sÀtt du kan ge Ätkomst till alla i ditt team. Det första Àr att konfigurera konton för alla, vilket Àr enkelt men kan vara omstÀndligt. Du kanske inte vill köra adduser (eller det möjliga alternativet useradd) och stÀlla in temporÀra lösenord för varje ny anvÀndare.

En andra metod Ă€r att skapa ett enkelt git-anvĂ€ndarkonto pĂ„ maskinen och be alla anvĂ€ndare som har skrivrĂ€ttigheter att skicka dig sin publika SSH-nyckel och att lĂ€gga till den till ~/.ssh/authorized_keys-filen ov det nya git-anvĂ€ndarkontot. Efter det kommer alla Ă„t maskinen via git-anvĂ€ndarkontot. Detta pĂ„verar inte versionsdatan pĂ„ nĂ„got sĂ€tt — SSH-anvĂ€ndaren du ansluter som pĂ„verkar inte versionerna du har sparat.

Ett annat sÀtt att göra pÄ Àr att lÄta din SSH-server autentisera frÄn en LDAP-server eller nÄgon annan centraliserad autentiseringskÀlla som du kanske redan har konfigurerat. SÄ lÀnge som varje anvÀndare kan fÄ skalÄtkomst pÄ maskinen bör alla SSH-autentiseringsmekanismer du kan tÀnka pÄ fungera.

scroll-to-top