Git je mocný nástroj pre správu verzií, no ako pri každom softvéri, aj pri jeho používaní sa môžu vyskytnúť problémy a chyby. V poslednej časti seriálu Git sa troška pobavíme a verím, že aj troška poučíme na rôznych problémoch (failoch) zo života a reálnej praxe z projektov. Git je pomerne zložitý a preto niečo posrať je relatívne jednoduché. Prísť na to, ako z toho von niekedy takmer nemožné. Hľadať niečo v dokumentácii GITu ide ťažko, pokiaľ teda už neviete názov tej veci, ktorú hľadáte. V tomto článku sa pozrieme na najčastejšie problémy, faily a fuckupy, s ktorými sa môžete stretnúť pri práci s Gitom a ako ich efektívne riešiť.
Necikaj do bazéna
Zmena histórie má niekedy ďalekosiahle dôsledky, a ak sa vydáte touto cestou, mali by ste si uvedomiť dôsledky svojich činov.
Na minútu späť k branchom (plaveckým bazénom). Ak cikáš vo svojom vlastnom branchy (plaveckom bazéne), si jediný, kto sa s tým musí vyrovnať. Len čo ste sa vycikali do iného branchu, prekročili ste hranicu. Uvedomte si, kto je na dolnom branchy. V zásade by ste mali meniť históriu iba v prípade, že (1) ste ovplyvnení ako jediný alebo (2) nenávidíte všetkých, ktorí sa nachádzajú za vami.
Prvé faily na projektoch
Ako na commity a správy?
Je dobrý nápad dať do správy commitu heslo?
Ako udržať poriadok v Gite?
Zoznam častých chýb v Gite a ich riešenia
1. Náhodné vymazanie vetvy
Niekedy sa môže stať, že omylom vymažete vetvu, na ktorej ste pracovali. Ak sa to stane, nezúfajte! Git má nástroje na obnovu zmazaných vetiev.
Riešenie:
- Použite príkaz
git reflog
na zobrazenie histórie vašich akcií a nájdite hash commit-u pred vymazaním vetvy. - Obnovte vetvu pomocou príkazu
git checkout -b <názov_vetvy> <hash_commit-u>
.
2. Konflikty pri zlúčení (Merge Conflicts)
Pri zlúčení vetiev často dochádza ku konfliktom, najmä ak viacerí vývojári pracujú na rovnakých súboroch.
Riešenie:
- Manuálne riešte konflikty v súboroch. Git označí konfliktné časti súborov, ktoré je potrebné upraviť.
- Po vyriešení konfliktov použite príkazy
git add
agit commit
, aby ste zmeny uložili.
3. Návrat k predchádzajúcim verziám
Niekedy je potrebné vrátiť sa k predchádzajúcej verzii projektu, napríklad kvôli chybe v kóde.
Riešenie:
- Použite príkaz
git reset
pre návrat na konkrétny commit. Tento príkaz však môže zmeniť históriu commitov. - Ak chcete zachovať históriu, použite príkaz
git revert
, ktorý vytvorí nový commit, ktorý zruší zmeny z vybraného commit-u.
4. Pushovanie do nesprávnej vetvy
Ak omylom pushnete zmeny do nesprávnej vetvy, môže to spôsobiť problémy v projekte.
Riešenie:
- Použite príkaz
git revert
na zrušenie commitov v nesprávnej vetve. - Pushnite opravenú verziu do správnej vetvy.
5. Rebasing a jeho nástrahy
Rebasing je užitočný nástroj, no môže spôsobiť komplikácie, ak sa nepoužíva správne.
Riešenie:
- Pred spustením rebase sa uistite, že máte zálohu aktuálnej vetvy.
- Použite príkaz
git rebase --abort
, ak sa vyskytnú problémy počas rebase.
6. Obnova zmazaných súborov
Ak omylom zmažete súbor, ktorý ste ešte necommitli, Git ponúka spôsoby na jeho obnovu.
Riešenie:
- Použite príkaz
git checkout -- <cesta_k_súboru>
na obnovenie zmazaného súboru.
Odporúčania na prácu s GITom
Práca s Gitom môže byť niekedy náročná, najmä ak sa vyskytnú problémy a chyby. Dôležité je vedieť, že Git ponúka množstvo nástrojov a príkazov na ich riešenie. Nezúfajte pri prvom probléme a skúste využiť vyššie uvedené tipy a triky na jeho riešenie. Pre efektívnejšiu prácu s Gitom odporúčame pravidelné zálohovanie, používanie aliasov na zjednodušenie príkazov a integráciu s CI/CD nástrojmi, ktoré vám pomôžu automatizovať a monitorovať vaše workflowy.
Objavte online kurzy na Git a GitHub
Prehľad publikovaných článkov
- Seriál Online kurz Git – Začíname s Gitom – 1. diel
- Seriál Online kurz Git – Lokálna Práca so Súbormi – 2. diel
- Seriál Online kurz Git – V Hlbinách Súborového Systému – 3. diel
- Seriál Online kurz Git – Paralelné svety a Git branch – 4. diel
- Seriál Online kurz Git – Mergovanie s Konfliktom, Tagy a Skrytie Zmien – 5. diel
- Seriál Online kurz Git – Vzdialené repozitáre, GitHub, Bitbucket – 6. diel
- Seriál Online kurz Git – Clean, Reset, Rebase, Revert nástroje do každého počasia – 7. diel
- Seriál Online kurz Git – Najčastejšie problémy, faily a fuckupy – 8. diel