Git je v součastnosti jedním z nejpopulárnějších nástrojů na zálohování a verzování kódu. Pro vývojáře je tento nástroj naprosto nepostradatelný. Rozhodně však dlouhodobě ušetří spoustu času a starostí i lidem z řad hobbistů, kterých je v každé komunitě mnoho.
Neumíte si představit, k čemu přesně je Git dobrý?
- Při vývoji je zcela běžnou praxí, že experimentujete. Píšete vlastní kód, upravujete kód někoho jiného, instalujete a konfigurujete různé moduly, zkrátka hrajete si se systémem, a tím ho poznáváte. Proto je zároveň běžnou praxí, že něco rozbijete, což ovšem není problém, pokud se jednoduše, např. jedním příkazem na příkazové řádce, dokážete vrátit zpět do stavu, kdy bylo vše funkční.
- Máte více počítačů, např. desktop a laptop, a potřebujete nástroj, pomocí něhož budete moci aktuální verzi systému přesunout z jednoho na druhý a naopak. To, co určitě nechcete, je kopírovat soubory manuálně.
- Jakmile něco na svém lokálním serveru vytvoříte, potřebujete zpravidla svou aplikaci přesunout na jiný server, odkud bude dostupná online. Někdy také můžete potřebovat pomoc či konzultaci od jiného vývojáře a budete chtít jednoduše přesunout kód/web do jeho počítače.
- Na vývoji jedné aplikace v praxi většinou pracuje více vývojářů. Pracují na svých počítačích, a následně potřebují kód, který každý z nich vytvořil, sloučit či spojit dohromady.
To bylo jen pár základních situací, kdy velmi oceníte verzovací systém. Pro začátek vám bude stačit několik základních dovedností, které vám výrazně usnadní a zpříjemní život. Časem zjistíte, že Git je mocný nástroj, který toho umí mnohem a mnohem více.
Git se ovládá buď v terminálu přes příkazovou řádku, anebo je možné využít některou z dostupných aplikací - SmartGit, TortoiseGit, SourceTree, apod.
V tomto tutoriálu budeme instalovat o ovládat git skrze příkazovou řádku, neboli CLI (Command Line Interface).
Naším cílem bude vysvělit si následující:
Instalace Gitu
Git nainstalujete jednoduše následujícími příkazy:
sudo apt-get update
sudo apt-get install git-all
Pokud nyní napíšete v příkazové řádce git
, měly by se vám vypsat příkazy, které je možné použít.
Víte, jak nainstalovat Git na rpm-based linux distribuci? Přispějte do komunity a pomožte těm, kteří by rádi věděli, jak na to.
Pokud potřebujete přístupy do adminstrace webu, obraťte se na někoho z Drupal týmu.
Víte, jak nainstalovat Git na počítačích Apple? Přispějte do komunity a pomožte těm, kteří by rádi věděli, jak na to.
Pokud potřebujete přístupy do adminstrace webu, obraťte se na někoho z Drupal týmu.
Víte, jak nainstalovat Git na počítačích s operačním systémem Windows? Přispějte do komunity a pomožte těm, kteří by rádi věděli, jak na to.
Pokud potřebujete přístupy do adminstrace webu, obraťte se na někoho z Drupal týmu.
Vytvoření lokálního repozitáře
Přestože Git je zpravidla používán vývojáři, jedná se o obecný nástroj na verzování souborů.
Představte si, že máte v počítači adresář s názvem test
a uvnitř něho soubory a.txt
, b.pdf
a c.php
. Pokud chcete složku verzovat pomocí gitu, stačí se do ní přesunout a založit git repozitář. To provedete pomocí příkazů:
cd [cesta-k-adresari]/test
git init
A to je vše. Co se stalo?
- Uvnitř složky
test
se nyní nachází skrytá složka.git
, do které si Git uložil základní informace o právě vytvořeném repozitáři. - Složku
test
je možné kopírovat či přesouvat a dokud bude ve složce existovat podsložka.git
, bude repozitář stále aktivní. - Smazat git repozitář můžete jednoduše tak, že složku
.git
smažete.
Vhodným druhým krokem po instalaci gitu je ještě nastavení informace o sobě samém (tzv. git credentials). Konkrétně jde o konfiguraci emailu a jména. Bez tohoto nastavení vám git nedovolí verzovat, viz dále.
Pozn.: Nutno podotknout, že pokud git pouze zkoušíte, nemusí být email ani jméno skutečné.
Git credentials je možné nastavit jak globálně pro všechny projekty, tak lokálně pro každý jednotlivý projekt zvlášť. Příkazy uvádím pro globální nastavení, nicméně pro lokální se místo atributu --global
pouze použijte attribut --local
:
git config --list
. Příkaz vypíše aktuální konfiguraci gitu pro daný repozitář.git config --global user.name “[jméno příjmení]”
git config --global user.email "[email]"
Verzování pomocí Gitu
Nyní máte existující repozitář, ale ten je prozatím prázdný. Jak tedy začít soubory verzovat?
Základním příkazem gitu je git status
, který vypíše stav repozitáře. (Jednou z velkých výhod gitu je, že vám vypisuje nápovědu přímo do terminálu, takže často stačí pouze následovat nápovědu.)
Po založení nového repozitáře jsou všechny soubory ve složce považovány gitem za tzv. untracked files, neboli nesledované soubory. V praxi to znamená, že git o těchto souborech sice ví, ale neverzuje je.
Pokud chceme začít soubory verzovat, zařadíme je mezi sledované příkazem:
git add [název souboru]
. Pro soubory v podsložkách je nutné uvádět relativní cestu.
Existují situace, kdy chcete přidat mezi sledované všechny soubory ve složce. K tomu slouží příkaz git add .
(tečka zde reprezentuje všechny soubory).
Zaverzování samotné pak probíhá pomocí příkazu git commit -m “[commit message]”
. Provedení tzv. commitu uloží novou revizi kódu a příkaz git status
vrací hlášku “nothing to commit”.
Přehled revizí je možné v terminálu vypsat pomocí příkazu git log -n [počet commitů zpět]
, např. 5 vypíše 5 posledních revizí.
Poslední z běžných úkonů , o kterém se chci zmínit, je mazání souborů. Pokud je soubor verzován a fyzicky ho smažete, začne vám to git hlásit. K odebrání souboru z verzování slouží příkaz git rm [název-souboru]
. Tímto příkazem soubor fyzicky nemažete z file systému, ale v rámci gitu ho dáváte do stavu staged. Po následném commitu dojde k jeho odstranění z verzování a soubor se po příkazu git status
bude vypisovat mezi nesledovanými soubory. Odstranění souboru z gitu tedy nemaže soubor z file systému.
Pokud je pro vás git nový, vyzval bych vás v tomto bodě k tomu, abyste si s ním trochu pohráli. Pokud máte založený testovací repozitář, zkuste si udělat několik dalších testovacích commitů, např.
- přidat do složky nové soubory a zaverzovat,
- změnit existující a zaverzovat,
- přidat soubor do stavu staged a následně ho modifikovat,
- odebrat soubor ze stavu staged zpět do stavu not staged,
- verzovaný soubor smazat z file systému a (za pomoci nápovědy) vyřešit konflikt, který tím v gitu vznikne.
Po každé akci používejte git status
, a tím si kontrolujte, jak git reaguje na vaše jednotlivé akce.