Git je poriadne robustný nástroj, ktorý sa môže pochváliť až 150 subcommandmi, pričom presné číslo závisí od verzie gitu. Pomocou metódy z tohto vlákna na mojom počítači:
$ git help -a | grep "^ " | wc -l
144
Momentálne 144 subcommandov, akokoľvek skreslená môže byť vyššie uvedená metrika, je stále pôsobivých. Ale nemôžem povedať, že mám git rád. Áno, používam ho takmer každý deň, dokonca aj na úlohy, ktoré sú pravdepodobne lepšie zvládnuté iným nástrojom, ale napriek tomu je to obor.
Subcommands nie sú celý obrázok #
Čítate správne a ak ste git používali čo i len trochu, pravdepodobne ste si
vedomí faktu, že v podstate všetky tieto subcommands majú svoje vlastné
argumenty a tu začína všetok chaos. Nevymenujem ich všetky, ale viete, že
hovorím o git add -A, git commit -a, git commit -m, git branch -r
alebo git branch -m, aby som vymenoval aspoň niektoré.
Tak čo je s resetom? Git reset je ďalší taký subcommand, ktorý ponúka
viacero argumentov, ktoré sa skutočne často používajú. Konkrétne je to
git reset --hard, o ktorom premýšľam ako o akomsi stroji času na
cestovanie späť v čase (v zmysle histórie commitov), a git reset --soft,
ktorý som zvyčajne používal po nejakom zle spravenom amende. Váš prípad
môže byť iný.
Každopádne, oba tieto príkazy vychádzajú zo svojho rodiča, mocného
git reset. Ako to, že som tento príkaz nikdy predtým nepoužil bez
argumentov? Je to taký základný príkaz, spojený s úplným jadrom samotného
gitu. No, nakoniec som aj túto hranicu prekročil. Úspešne som použil (a
pochopil) git reset na rozdelenie predchádzajúceho commitu na dva
samostatné! Naozaj to pôsobí ako zaškrtnutie ďalšieho políčka na
celoživotnom TODO zozname programátora.