Lekce 3 - Git - Základy
V minulé lekci, Git - Instalace, jsme si popsali Git klienty a jejich integraci do vývojových prostředí. Nainstalovali jsme si Git.
V dnešním Git tutoriálu dokončíme nastavení Gitu. Pak se už zaměříme na základní práci s Gitem. Probereme si správnou praxi pro tvorbu commitů, kterou také uplatníme při přidání souboru do commitu. Naučíme se vytvořit a sledovat stav repozitáře a přidat do něj soubor.
Všechny příkazy budeme zadávat v terminálu
MinTTY
. MinTTY
otevřeme kliknutím na ikonu lupy v
dolní liště, zadáním příkazu bash
a výběrem možnosti
Git Bash.
Nastavení Gitu
Po instalaci Gitu z lekce Git -
Instalace nám ještě zůstává úkol sdělit Gitu, kdo jsme. K tomu
slouží dva jednoduché příkazy global user.name
a
global user.email
pro nastavení našeho jména a
e-mailové adresy:
$ git config --global user.name Jméno $ git config --global user.email Emailová adresa
Jméno
a Emailová adresa
nahradíme
svým jménem a e-mailovou adresou. Tyto údaje budou sloužit jako podpis pro
každý commit, který provedeme.
Všechna nastavení si zobrazíme příkazem
git config --list
:
MINGW64:/c ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c $ git config --list diff.astextplain.textconv=astextplain ... init.defaultbranch=main core.editor=vim [email protected] user.name=Itnetwork gui.recentrepo= credential.helper=cache ...
Nyní si již můžeme představit commity.
Commity
Commit představuje snapshot neboli záznam o změnách provedených v projektu v daném okamžiku. Historie commitů umožňuje zpětně sledovat, jak se projekt vyvíjel, a obnovit stav projektu z libovolného minulého bodu.
Každý commit obsahuje:
- Změny: Rozdíly mezi aktuálním a předchozím stavem projektu, včetně přidání, úprav nebo smazání souborů a složek.
- Autora: Informace o autorovi změn.
- Časové razítko: Čas vytvoření commitu.
- Popis: Informativní popis provedených změn.
- Odkazy na předchozí commity: Lineární historie změn s odkazy na předchůdce.
Každý commit má svůj unikátní identifikátor (hash), založený na obsahu, autorech a časovém razítku. Správně psané commity usnadňují spolupráci, vyhledávání změn a udržení přehledné historie.
Nyní se podíváme na příklad kvalitního commitu, který má specifický název a podrobný popis změn:
Commit: "Oprava chyby při zpracování platby PayPal" Popis commitu: "Byla identifikována a opravena chyba ve funkci zpracování plateb PayPal, která způsobovala neočekávané chování při selhání připojení na PayPal API. Nyní je chyba odstraněna a zpracování plateb funguje spolehlivěji."
Zásady pro psaní kvalitních commitů
Kvalitní commit zlepšuje verzovací historii, usnadňuje spolupráci a zrychluje vyhledávání změn. Následující pravidla pomohou efektivnějšímu psaní commitů:
- Stručný a výstižný název commitu: Název commitu by měl být krátký (ideálně do 50 znaků) a jasně by měl vystihovat povahu změn.
- Podrobný popis změn: Popis změn by měl být dostatečně informativní, aby čtenář pochopil účel commitu bez prozkoumávání kódu.
- Rozdělení změn na logické části: Větší commit obsahující několik různých změn rozdělíme na menší logické části.
- Přítomný čas: Název i popis commitu píšeme v přítomném čase.
- Odkazy na problémy nebo úkoly: Pokud projekt využívá nástroj ke sledování problémů (issue tracker), přidáme odkazy na příslušné problémy nebo úkoly.
Po nutné teorii o commitech se pomalu můžeme vrhnout na praxi. Začneme vytvořením projektu a repozitáře, který se naučíme sledovat. Pak si do repozitáře přidáme soubor, který následně přidáme i do stage. Nakonec soubor přidáme do commitu.
Vytvoření projektu
Pro naše účely vytvoříme nový projekt, na kterém si budeme ukazovat
příkazy. Začneme tím, že na disku C:
vytvoříme novou
složku, kterou pojmenujeme Mujgit/
.
Vytvoření repozitáře
V naší nové složce Mujgit/
si otevřeme terminál
MinTTY
. Otevření terminálu MinTTY
jsme si ukázali
v lekci Git
- Instalace. V terminálu MinTTY
vložíme příkaz
git init
pro vytvoření repozitáře:
MINGW64:/c ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c $ git init Initialized empty Git repository in C:/mujgit/.git/
Nový repozitář se fyzicky nevytvoří hned po zadání
příkazu git init
, ale až po vytvoření a potvrzení prvního
commitu.
Vytvořila se nám nová složka .git/
, ve které budou
zdrojové kódy a informace o našem projektu. Výborně, právě jsme si
vytvořili náš první repozitář
Sledování stavu repozitáře
Základním prostředkem pro získání přehledu o aktuálním stavu
repozitáře je použití příkazu git status
. Tento příkaz
poskytuje podrobné informace o změnách v souborech,
nových souborech, souborech, které jsou připraveny
ke commitu, a dalších relevantních informacích.
Po spuštění příkazu git status
získáme následující
informace:
- Nezměněné soubory: Soubory, které nebyly od posledního
commitu změněny, jsou uvedeny jako
working tree clean
. - Změněné soubory: Upravené soubory, které nebyly
přidány do staging oblasti, jsou označeny jako
Changes not staged for commit
. - Soubory ve staging oblasti: Soubory, které jsou
připraveny ke commitu, jsou uvedeny jako
Changes to be committed
. - Nové soubory: Nově vytvořené soubory jsou označeny
jako
Untracked files
. - Aktuální větev: Zobrazí název aktuální větve, na které pracujeme.
Sledování stavu našeho repozitáře
Nyní se podíváme na stav našeho repozitáře ve složce
Mujgit
. Pokud se v této složce nenacházíme, přesuneme se do
ní pomocí příkazu cd Mujgit
:
MINGW64:/c ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c $ cd Mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
Nyní si zjistíme stav našeho projektu. Otevřeme si
příkazovou řádku a spustíme příkaz git status
:
MINGW64:/c/mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main) $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) nothing added to commit but untracked files present (use "git add" to track)
Pojďme si vysvětlit, co nám Git píše.
On branch master
Informace, že se nacházíme na větvi s názvem
master
.
No commits yet
Oznámení, že nebyly provedeny žádné commity na této větvi. Repozitář ještě neobsahuje historii změn.
Untracked files
Seznam nezaznamenaných souborů.
Nothing added to commit but untracked files present (use "git add" to track)
Upozornění, že jsme neprovedli žádné změny v commitech, ale máme
nezaznamenané soubory, které můžeme přidat do repozitáře
pomocí příkazu git add
.
Přidání souboru
Nyní si ukážeme, jak přidat soubor do repozitáře a provést commit.
Začneme vytvořením nového souboru index.html
ve složce
Mujgit
. Do souboru index.html
si pak vložíme
následující HTML kód:
<!DOCTYPE html> <html> <head> <title>Název stránky</title> </head> <body> <p>Text na stránce</p> </body> </html>
Po vytvoření souboru zkontrolujeme stav pracovního adresáře pomocí
příkazu git status
:
MINGW64:/c/mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main) $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) index.html //Náš nově vytvořený soubor nothing added to commit but untracked files present (use "git add" to track)
Přidání souboru do stage
Abychom začlenili soubor index.html
do verzovacího systému,
přidáme ho do staging oblasti pomocí příkazu
git add <název souboru>
:
MINGW64:/c/mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main) $ git add index.html ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main)
Pro přidání více souborů najednou bychom použili jejich
názvy oddělené mezerou:
git add soubor_1 soubor_2 adresář/soubor_1
. Pro přidání všech
souborů v pracovním adresáři do staging oblasti bychom použili zkrácený
zápis: git add .
.
Nyní zadáme znovu příkaz git status
, abychom viděli, že
soubor index.html
byl přidán do staging
oblasti:
MINGW64:/c/mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main) $ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.html Untracked files: (use "git add <file>..." to include in what will be committed)
Soubor index.html
je nyní připraven k přidání do
commitu.
Přidání souboru do commitu
Po přidání všech potřebných souborů do staging oblasti vytvoříme
commit příkazem commit -m "Název commitu"
:
MINGW64:/c/mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main) $ git commit -m "Přidán soubor index.html" [main (root-commit) c61bcd4] Přidán soubor index.html 1 file changed, 9 insertions(+) create mode 100644 index.html
Hodnoty c61bcd4
a 100644
můžete mít
jiné.
Commit si ověříme příkazem git log
:
MINGW64:/c/mujgit ItNetwork@DESKTOP-ADEVTG4 MINGW64 /c/mujgit (main) $ git log commit c61bcd487e6b90a6f283c147ff20dcea65f05b5c (HEAD -> main) Author: itnetwork <[email protected]> Date: Wed Aug 30 10:42:37 2023 +0200 Přidán soubor index.html
V příští lekci, Git - Základy - Dokončení, si vyzkoušíme tvorbu commitu s delším
popisem. Naučíme se také naklonovat cizí repozitář a používat soubor
.gitignore
.