-
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
2.1 Základy práce se systémem Git - Získání repozitáře Git
Pokud byste si o Gitu měli přečíst jen jednu kapitolu, měla by to být právě tahle. Tato kapitola popisuje všechny základní příkazy, které potřebujete pro drtivou většinu věcí, jejichž prováděním budete v Gitu trávit svůj čas. Po přečtení kapitoly byste měli být schopni nakonfigurovat a inicializovat repozitář, zahájit a ukončit sledování souborů, připravovat soubory k zápisu (stage) a zapisovat revize (commit). Ukážeme si také, jak nastavit Git, aby ignoroval určité soubory a masky souborů, jak rychle a jednoduše vrátit nežádoucí změny, jak procházet historii projektu a zobrazit změny mezi jednotlivými revizemi a jak posílat soubory do vzdálených repozitářů (push) a naopak z nich soubory zase stahovat (pull).
Získání repozitáře Git
Projekt lze v Gitu získat dvěma základními způsoby. První způsob spočívá v tom, že vezmeme existující projekt nebo adresář a importujeme ho do Gitu. Druhý způsob spočívá v naklonování již existujícího gitového repozitáře z jiného serveru.
Inicializace repozitáře v existujícím adresáři
Chcete-li v Gitu zahájit sledování existujícího projektu, přejděte do adresáře projektu a napište:
$ git init
Příkaz vytvoří nový podadresář s názvem .git
, který bude obsahovat všechny soubory nezbytné pro repozitář, tzv. kostru repozitáře Git.
V tomto okamžiku se z vašeho projektu ještě nic nesleduje.
(Více informací o tom, jaké soubory obsahuje právě vytvořený adresář .git
, naleznete v kapitole Git Internals.)
Chcete-li zahájit správu verzí existujících souborů (a ne jen prázdného adresáře), měli byste pravděpodobně zahájit sledování (tracking) těchto souborů a zapsat první revizi (provést počáteční commit).
Můžete tak učinit pomocí několika příkazů git add
, jimiž určíte soubory, které chcete sledovat, a poté provedete příkaz provedete git commit
:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
K tomu, co přesně tyto příkazy provedou, se dostaneme za okamžik. V této chvíli máte vytvořen gitový repozitář se sledovanými soubory a úvodní revizí.
Klonování existujícího repozitáře
Chcete-li vytvořit kopii existujícího gitového repozitáře (například u projektu, do nějž chcete začít přispívat), pak příkazem, který hledáte, je git clone
.
Pokud jste zvyklí pracovat s jinými systémy pro správu verzí, jako je například Subversion, jistě jste si všimli, že příkaz zní clone
, a nikoli checkout
.
Tento rozdíl je podstatný. Místo pouhého získání pracovní kopie souborů projektu, získá Git plnou kopii téměř všech dat na serveru.
Po provedení příkazu git clone
budou k historii projektu staženy všechny verze všech souborů.
Pokud by někdy poté došlo k poruše disku serveru, lze použít libovolný z těchto klonů na kterémkoli klientovi a obnovit pomocí něj server zpět do stavu, v němž byl v okamžiku klonování (může dojít ke ztrátě některých zásuvných modulů na straně serveru a podobných věcí, ale všechna verzovaná data budou obnovena. Další podrobnosti naleznete v kapitole Zprovoznění Gitu na serveru).
Repozitář naklonujete příkazem git clone [url]
.
Pokud například chcete naklonovat gitovou knihovnu zvanou libgit2, můžete to provést následovně:
$ git clone https://github.com/libgit2/libgit2
Tímto příkazem se vytvoří adresář s názvem libgit2
, inicializuje se v něm podadresář .git
, stáhnou se všechna data pro tento repozitář a vytvoří se pracovní kopie nejnovější verze.
Přejdete-li do nového adresáře libgit2
, uvidíte v něm soubory projektu připravené ke zpracování nebo jinému použití.
Pokud chcete naklonovat repozitář do adresáře pojmenovaného jinak než libgit2
, můžete název zadat jako další parametr na příkazovém řádku:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Tento příkaz učiní totéž co příkaz předchozí, ale cílový adresář se bude jmenovat mylibgit
.
Git nabízí celou řadu různých přenosových protokolů.
Předchozí příklad využívá protokol https://
, můžete se ale setkat také s protokolem git://
nebo user@server:/path/to/repo.git
, který používá přenosový protokol SSH.
V kapitole Zprovoznění Gitu na serveru budou uvedeny všechny dostupné možnosti, které mohou být na serveru pro přístup do gitového repozitáře nastaveny, včetně jejich předností a nevýhod.