-
1. Úvod
- 1.1 Správa verzí
- 1.2 Stručná historie systému Git
- 1.3 Základy systému Git
- 1.4 Instalace systému Git
- 1.5 První nastavení systému Git
- 1.6 Kde hledat pomoc
- 1.7 Shrnutí
-
2. Základy práce se systémem Git
- 2.1 Získání repozitáře Git
- 2.2 Nahrávání změn do repozitáře
- 2.3 Zobrazení historie revizí
- 2.4 Rušení změn
- 2.5 Práce se vzdálenými repozitáři
- 2.6 Značky
- 2.7 Tipy a triky
- 2.8 Shrnutí
-
3. Větve v systému Git
- 3.1 Co je to větev
- 3.2 Základy větvení a slučování
- 3.3 Správa větví
- 3.4 Možnosti při práci s větvemi
- 3.5 Vzdálené větve
- 3.6 Přeskládání
- 3.7 Shrnutí
-
4. Git na serveru
- 4.1 Protokoly
- 4.2 Jak umístit Git na server
- 4.3 Vygenerování veřejného SSH klíče
- 4.4 Nastavení serveru
- 4.5 Veřejný přístup
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Démon Git
- 4.10 Hostování projektů Git
- 4.11 Shrnutí
-
5. Distribuovaný charakter systému Git
- 5.1 Distribuované pracovní postupy
- 5.2 Přispívání do projektu
- 5.3 Správa projektu
- 5.4 Shrnutí
-
6. Nástroje systému Git
- 6.1 Výběr revize
- 6.2 Interaktivní příprava k zapsání
- 6.3 Odložení
- 6.4 Přepis historie
- 6.5 Ladění v systému Git
- 6.6 Submoduly
- 6.7 Začlenění podstromu
- 6.8 Shrnutí
-
7. Individuální přizpůsobení systému Git
-
8. Git a ostatní systémy
- 8.1 Git a Subversion
- 8.2 Přechod na systém Git
- 8.3 Shrnutí
-
9. Git pod pokličkou
- 9.1 Nízkoúrovňové a vysokoúrovňové příkazy
- 9.2 Objekty Git
- 9.3 Reference Git
- 9.4 Balíčkové soubory
- 9.5 Refspec
- 9.6 Přenosové protokoly
- 9.7 Správa a obnova dat
- 9.8 Shrnutí
- 9.9 Poznámky k překladu
4.5 Git na serveru - Veřejný přístup
Veřejný přístup
A co když chcete u svého projektu nastavit anonymní oprávnění pro čtení? Nehostujete třeba interní soukromý projekt, ale „open source“ projekt. Nebo možná máte několik serverů průběžné integrace, které se neustále mění a vy nechcete stále generovat SSH klíče, rádi byste vždy přidali jen obyčejné anonymní oprávnění pro čtení.
Patrně nejjednodušším způsobem pro menší týmy je spustit statický webový server s kořenovým adresářem dokumentů, v němž budou uloženy vaše Git repozitáře, a zapnout zásuvný modul post-update, o kterém jsme se zmínili už v první části této kapitoly. Můžeme pokračovat v našem předchozím příkladu. Řekněme, že máte repozitáře uloženy v adresáři /opt/git a na vašem počítači je spuštěn server Apache. Opět, můžete použít jakýkoli webový server. Pro názornost ale ukážeme některá základní nastavení serveru Apache, abyste získali představu, co vás může čekat.
Nejprve ze všeho budete muset zapnout zásuvný modul:
$ cd project.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod a+x hooks/post-update
Jestliže používáte verzi systému Git starší než 1.6, nebude příkaz mv nutný. Git začal pojmenovávat příklady zásuvných modulů příponou „.sample“ teprve nedávno.
Jaká je funkce zásuvného modulu post-update? V principu vypadá asi takto:
$ cat .git/hooks/post-update
#!/bin/sh
exec git-update-server-info
Znamená to, že až budete odesílat data na server prostřednictvím SSH, Git spustí tento příkaz a aktualizuje soubory vyžadované pro přístup přes HTTP.
Dále je třeba přidat záznam VirtualHost do konfigurace Apache s kořenovým adresářem dokumentů nastaveným jako kořenový adresář vašich projektů Git. Tady předpokládáme, že máte nastaveny zástupné znaky DNS (wildcard DNS) a můžete odeslat *.gitserver do kteréhokoli boxu, který používáte, a spustit následující:
<VirtualHost *:80>
ServerName git.gitserver
DocumentRoot /opt/git
<Directory /opt/git/>
Order allow, deny
allow from all
</Directory>
</VirtualHost>
Budete také muset nastavit uživatelskou skupinu adresáře /opt/git na www-data. Váš webový server tak získá přístup pro čtení k repozitářům, protože instance Apache, která spouští CGI skript, bude (standardně) spuštěna s tímto uživatelem:
$ chgrp -R www-data /opt/git
Po restartování serveru Apache byste měli být schopni naklonovat své repozitáře v tomto adresáři. Zadejte adresu URL svého projektu:
$ git clone http://git.gitserver/project.git
Tímto způsobem můžete během pár minut nastavit oprávnění pro čtení založené na protokolu HTTP pro větší počet uživatelů k jakémukoli svému projektu. Další jednoduchou možností nastavení veřejného neověřovaného přístupu je spustit démona Git. Pokud je pro vás tato cesta schůdnější, budeme se jí věnovat v následující části.