×
Vytvárame riešenia

Git - vytvárame lokálny repozitár - časť 2

Po úvodnom zoznámení s Bash-om v predchádzajúcej časti je druhý diel venovaný tvorbe lokálneho repozitára. Aj v tomto dieli budú premenné začínať znakom $, aby bolo zjavné, čo bude používateľ musieť zmeniť vo formátoch zápisov.
Na úvod je vhodné uviesť, že Git pracuje s dvoma typmi súborov a troma stavmi.
Typy súborov
  • Nesledované (untracked files)
  • Sledované (tracked files)
Druhy stavov súborov
  • Uložené (committed)
  • Zmenené (modified)
  • Označené (staged)

Nesledované súbory (untracked files)

Nesledované súbory sú súbory, ktoré nie sú ešte v repozitári. To znamená, že súbory neboli pridané cez príkaz commit do repozitára, ale nachádzajú sa v adresári, ktorý je definovaný ako repozitár. Vytvorenie adresára, ktorý je zároveň aj repozitár, sa vykonáva cez príkaz init. Každý nový súbor pridaný do adresára reprezentujúceho repozitár sa stáva untracked.

Sledované súbory (tracked files)

Sledované súbory sú súbory, ktoré už existujú v repozitári. To znamená, že v minulosti bol na tieto súbory použitý príkaz commit a teraz sú "sledované" (uložené v repozitári).

Uložené súbory (committed)

Uložené súbory sú súbory, ktoré boli prostredníctvom príkazu commit vložené do repozitára.

Zmenené súbory (modified)

Zmenené súbory sú všetky tie súbory, ktoré sa líšia od súborov uložených v repozitári ako aj nové súbory, ktoré sa v repozitári ešte nenachádzajú. Na súbory neboli po zmenách alebo ich vytvorení ešte aplikované príkazy add a commit. Tieto súbory bývajú označované aj ako unstaged.

Označené súbory (staged)

Označené súbory sú všetky zmenené súbory, na ktoré bol aplikovaný príkaz add ale nie príkaz commit. Označené súbory sú pripravené pre uloženie do repozitára. Pre uloženie označených súborov do repozitára sa aplikuje príkaz commit. Pre vrátenie označených súborov do pôvodného stavu zmeneného súbory (modified) sa aplikuje zápis rm --cached.

Začíname prácu s Git-om

Skôr ako sa začnú pridávať súbory do repozitára, je potrebné definovať meno a e-mail používateľa. Bez zadania týchto údajov nebude možné vykonať zápis do repozitára (použiť príkaz commit). Vďaka týmto údajom je možné identifikovať autora zmeny v repozitári. Používateľ má k dispozícii dva spôsoby zápisu: lokálny a globálny. Kým globálny zápis je platný na všetky lokálne repozitáre, lokálny zápis je možné uviesť len pre repozitár, v ktorom je používateľ nastavený. Lokálnymi zápismi sa prepíšu globálne nastavenia. Lokálny zápis je možné vykonať až po vytvorení repozitára.
Príklad: Zápis globálnych identifikačných údajov.
1
2
3
4
5
6
7
8
9
10
11
# Formát globálneho zápisu pre meno
# git config --global user.name "$name"
# Vytvorenie globálneho používateľa Matej Lednár
git config --global user.name "Matej Lednár"
# Formát globálneho zápisu pre e-mail
# git config --global user.email $email
# Vytvorenie globálneho e-mailu matej.lednar@example.com
git config --global user.email matej.lednar@example.com
Príklad: Zápis lokálnych identifikačných údajov.
1
2
3
4
5
6
7
8
9
10
11
# Formát lokálneho zápisu pre meno
# git config user.name "$name"
# Vytvorenie lokálneho používateľa Matej Lednár
git config user.name "Matej Lednár"
# Formát lokálneho zápisu pre e-mail
# git config user.email $email
# Vytvorenie lokálneho e-mailu matej.lednar@example.com
git config user.email matej.lednar@example.com
Meno používateľa musí byť uvedené v úvodzovkách. Ak je meno uvedené ako jedno slovo, úvodzovky nemusia byť použité. Ak by meno skladajúce sa z viacerých slov nebolo v úvodzovkách, jednotlivé slová by boli považované za hodnoty. Globálny konfiguračný súbor Git-u s názvom .gitconfig je pod operačným systémom Windows uložený v adresári C:\Documents and Settings\$User, kde $User je názov používateľa. Lokálna konfigurácia je uložená v repozitári v súbore s názvom config.
Zobrazenie lokálneho alebo globálneho mena a e-mailu sa vykoná zadaním rovnakých príkazov, ale bez uvedenia hodnôt.
Príklad: Zobrazenie globálnych identifikačných údajov.
1
2
3
4
5
6
7
8
9
# Formát zápisu pre zobrazenie globálneho mena
# git config --global user.name
git config --global user.name
# Formát zápisu pre zobrazenie globálneho e-mailu
# git config --global user.email
git config --global user.email
Príklad: Zobrazenie lokálnych identifikačných údajov.
1
2
3
4
5
6
7
8
9
# Formát zápisu pre zobrazenie lokálneho mena
# git config user.name
git config user.name
# Formát zápisu pre zobrazenie lokálneho e-mailu
# git config user.email
git config user.email
Pre výpis konfiguračných nastavení Gitu slúži príkaz list.
Príklad: Výpis aktuálnej konfigurácie.
1
2
3
# Formát zápisu
# git config --list
git config --list
Pre zobrazenie príkazov je možné použiť príkaz help. Príkaz help podporuje voliteľný parameter $keyword. Po aplikovaný voliteľného parametra sa namiesto výpisu do Bash-u zobrazí nápoveda v internetovom prehliadači.
Príklad: Nápoveda cez príkaz help.
1
2
3
4
# Formát zápisu
# git --help [$keyword]
git --help
git --help add

Vytvárame lokálny repozitár

Pre testovacie účely bude práca s Git-om demonštrovaná na repozitári s názvom testing-repository, ktorý bude umiestnený v adresári git-tests. Repozitár vytvoríme cez príkaz init. Za príkazom init môže nasledovať názov repozitára.
Príklad: Vytvorenie repozitára.
1
2
3
# Formát zápisu
# git init [$Name]
git init
Znaky [] vo formáte zápisu označujú, že ich obsah je voliteľný (môže, ale aj nemusí byť uvedený). Ak nie je pri vytváraní repozitára uvedený jeho názov, bude vytvorený adresár s názvom .git a jeho rodičovský adresár bude zodpovedať názvu repozitára.
Príklad: Vytvorenie lokálneho repozitára testing-repository
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# nastavenie sa na C:\
cd /c
# pre kontrolu správnosti nastavenia zobrazíme obsah
ls
# vytvorenie adresára git-tests
mkdir git-tests
# nastavenie sa do adresára git-tests
cd git-tests
# vytvorenie repozitára s názvom testing-repository
# bude vytvorený adresár testing-repository a vnorený adresár .git
git init testing-repository
Pre "vyčistenie" Bash-u od predchádzajúcich príkazov je možné použiť príkaz clear. V nasledujúcej časti vykonáme zápis do vytvoreného repozitára. Najprv v adresári testing-repository vytvoríme súbor test.txt s textom Test 1. Tento úkon je možné vykonať cez prieskumníka, niektorého zo správcov súborov alebo prostredníctvom textového editora či IDE.
Pre zistenie zmien v repozitári je možné použiť príkaz status.
Príklad: Zobrazenie zmien v repozitári.
1
2
3
# Formát zápisu
# git status
git status
Ak neboli vykonané žiadne zmeny, príkaz vráti hlásenie nothing to commit. Ak vytvoríme nový súbor, ktorý ešte nie je v repozitári, dostaneme hlásenie nothing added to commit but untracked files present. Súčasťou výpisu je aj informácia o branch, v ktorej sme nastavený či nápoveda, čo môžeme ďalej robiť. V tomto prípade nasleduje za textom nothing added to commit but untracked files present tip (use "git add" to track).
Následne môžeme súbor označiť, že ho chceme zahrnúť medzi súbory pre uloženie do repozitára. Tento úkon sa vykoná cez príkaz add.
Príklad: Pridanie konkrétneho súboru do zoznamu pre uloženie do repozitára.
1
2
3
# Formát zápisu
# git add $fileName
git add test.txt
Ak po príkaze status zistíme, že chceme pridať všetky zmenené súbory do repozitára, tak namiesto písania názvov jednotlivých súborov je možné použiť znak . .
Príklad: Pridanie všetkých zmenených súborov do zoznamu pre uloženie do repozitára.
1
2
3
# Formát zápisu
# git add .
git add .
V prípade, že sme sa pomýlili, a niektorý zo zmenených súborov nechceme zapísať do repozitára, použijeme zápis rm --cached. Zápis rm --cached ruší príkaz add. Pre zrušenie všetkých súbor stačí miesto názvov zadať znak *. Zrušením príkazu add sa súbor dostáva do stavu zmenené (modified / unstaged). V tomto stave je aj pred použitím príkazu add.
Príklad: Odznačenie jedného súboru.
1
2
3
# Formát zápisu
# git rm --cached $fileName
git rm --cached test.txt
Príklad: Odznačenie všetkých súborov.
1
2
3
# Formát zápisu
# git rm --cached *
git rm --cached *
Príkaz add dáva súbory do stavu označené (staged), teda do stavu pred uložením (commit) do repozitára. Po príkaze add nasleduje posledný krok a tým je zápis do repozitára prostredníctvom príkazu commit.
Príklad: Príkazom commit sa zapíšu dáta typu staged do repozitára.
1
2
3
# Formát zápisu
# git commit -m "$message"
git commit -m "[CREATE] New repository"
Za príkazom commit nasleduje parameter -m a správa uvedená v úvodzovkách informujúca o tom, čo bolo vykonané, resp. za akým účelom boli pridané alebo zmenené existujúce súbory.
Pri práci s Git-om je vhodné definovať spôsob zapisovania správ pre commity. Za týmto účelom je možné používať vybrané značky. Tie sa môžu uvádzať do hranatých zátvoriek. Možné príklady formátov zápisov správ uvádzam nižšie. Kedže ide o moje riešenie je možné, že na internete sú už vytvorené pokročilejšie naming conventions pre zápis správ pre Git.
Príklad: Príklady značiek.
1
2
3
4
5
6
7
[ADD] $description
[REMOVED] $description
[BUGFIX] $description
[UPDATE] $description
[TASK] $number $description
[REQUEST] $number $description
[CHR] $number $description
Značka [CHR] reprezentuje skratku CHANGE REQUEST. V prípade, že poznáte efektívnejší spôsob zápisu správ, môžete sa oň podeliť prostredníctvom komentára.

Záver

Týmto dielom končí časť venovaná tvorbe lokálneho repozitára. V ďalšom článku venovanom Git-u plánujem predstaviť tvorbu centrálneho repozitára a jeho prepojenie s lokálnym repozitárom. Neskôr plánujem napísať článok zameraný na ďalšie dôležité príkazy potrebné pre prácu s repozitármi a súbormi.
Autor: Matej Lednár
Dátum: 30.1.2013
Kategória: Softvér
Značky:
softvér, git, bash, repozitár, vcs, staged, unstaged, commit, add, cached, tracked, untracked, help, status, global, local, list, tags


Softvér,softvér,Git,git,bash,repozitár,staged,unstaged,commit,add,cached,tracked,untracked,help,status,global,local,list,tags
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších