-
1. Úvod
- 1.1 Správa verzí
- 1.2 Stručná historie systému Git
- 1.3 Základy systému Git
- 1.4 Příkazový řádek
- 1.5 Instalace systému Git
- 1.6 První nastavení systému Git
- 1.7 Získání nápovědy
- 1.8 Shrnutí
-
2. Základy práce se systémem Git
-
3. Větve v systému Git
- 3.1 Větve v kostce
- 3.2 Základy větvení a slučování
- 3.3 Správa větví
- 3.4 Postupy 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 Zprovoznění Gitu na serveru
- 4.3 Generování veřejného klíče SSH
- 4.4 Nastavení serveru
- 4.5 Démon Git
- 4.6 Chytrý HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Možnosti hostování u třetí strany
- 4.10 Shrnutí
-
5. Distribuovaný Git
- 5.1 Distribuované pracovní postupy
- 5.2 Přispívání do projektu
- 5.3 Správa projektu
- 5.4 Shrnutí
-
6. GitHub
-
7. Git Tools
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Ladění v systému Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Shrnutí
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Atributy Git
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Shrnutí
-
9. Git a ostatní systémy
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Shrnutí
-
10. Git Internals
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Balíčkové soubory
- 10.5 The Refspec
- 10.6 Přenosové protokoly
- 10.7 Správa a obnova dat
- 10.8 Environment Variables
- 10.9 Shrnutí
-
A1. Appendix A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Shrnutí
-
A2. Appendix B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
-
A3. Appendix C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.5 Git na serveru - Démon Git
Démon Git
Dále si zřídíme si démona pro obsluhu repozitářů přes protokol „Git“. Jde o obvyklou volbu, pokud potřebujeme rychlý přístup ke gitovým datům bez nutnosti autentizace. Pamatujte na to, že se jedná o službu bez ověřování totožnosti, a proto vše, co budete tímto protokolem obsluhovat, bude uvnitř sítě pokládáno za veřejné.
Pokud protokol používáte na serveru mimo firewall, měl by být použit pouze pro projekty, které jsou veřejně viditelné okolnímu světu. Pokud je server, na kterém protokol provozujete, uvnitř firewallu, můžete ho používat u projektů, k nimž má mít velký počet lidí nebo počítačů přístup pouze pro čtení (servery průběžné integrace nebo servery sestavení) a nechcete pro každého z nich přidávat SSH klíč.
Na protokolu Git každopádně oceníte jeho snadné nastavení. V podstatě je třeba následujícím příkazem spustit gitového démona:
$ git daemon --reuseaddr --base-path=/opt/git/ /opt/git/
Volba --reuseaddr
umožňuje serveru restartování bez nutnosti čekat na vypršení časového limitu pro stará spojení, volba --base-path
umožňuje uživatelům klonovat projekty, aniž by museli zadávat celou cestu, a cesta na konci příkazu říká démonu Git, kde má hledat repozitáře určené k exportu.
Jestliže používáte bránu firewall, budete do ní muset na daném počítači provrtat díru pro port 9418.
Proces démona můžete spustit mnoha způsoby — v závislosti na tom, jaký operační systém používáte. U počítačů s Ubuntu můžete použít skript Upstart. Do souboru
/etc/init/local-git-daemon.conf
vložte tento skript:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
--user=git --group=git \
--reuseaddr \
--base-path=/opt/git/ \
/opt/git/
respawn
Z bezpečnostních důvodů důrazně doporučujeme, aby byl tento démon spuštěn jako uživatel, který má k repozitářům oprávnění pouze pro čtení. To lze snadno zajistit vytvořením nového uživatele git-ro
a spuštěním démona s jeho oprávněními.
Pro zjednodušení jej prostě spustíme pod stejným uživatelem git
, pod kterým běží git-shell
.
Při restartování počítače se gitový démon spustí automaticky. V případě pádu démona bude jeho činnost automaticky obnovena (respawn). Pokud ho chcete spustit aniž byste museli počítač restartovat, použijte následující příkaz:
$ initctl start local-git-daemon
V jiných systémech možná budete chtít použít xinetd
, skript systému sysvinit
, nebo nějaký podobný skript — umožní-li vám dosáhnout démonizovaného příkazu, který je nějak hlídán.
Dále musíte Gitu říct, ke kterým repozitářům povolíte neautentizovaný přístup přes gitový server.
Můžete to udělat tak, že v každém repozitáři vytvoříte soubor pojmenovaný git-daemon-export-ok
.
$ cd /path/to/project.git
$ touch git-daemon-export-ok
Přítomnost tohoto souboru Gitu sděluje, že obsluha daného projektu nevyžaduje ověřování totožnosti.