Cheatsheet ========== git init inicializace repozitáře git clone vytvoření lokální kopie ze vzdáleného repozitáře git commit Uložení lokálních změn do lokálního repozitáře **Asi nejdůležitější a nejčastěji používaný příkaz** git branch Vytváření nové větve (správa větví) git merge sloučení změn *z druhé větve do aktuální* git checkout Přepnutí se do jiné branche, na jiný commit, na jiný tag git fetch Stažení změn ze serveru git rebase Přeskládání aktuální práce nad nový základ (např. nad změny stažené před tím ze serveru pomocí `git fetch`) git push poslání lokálních změn na vzdálený server git pull alternativní stažení změn ze serveru spolu s `mergováním` konfliktů mezi lokální a vzdálenou větví git remote správa vzdálených repozitářů Typické workflow ================ Bez větví --------- Klonování existujícího repozitáře:: git clone https://github.com/geosense/git Na začátku práce stáhnout aktuální verze ze vzdálených repozitářů a přeskládat svoji případnou práci nad ně:: git fetch --all git rebase Následuje práce v textovém editoru, a mnoho a mnoho commitů:: git commit -a -m"důležitá změna" git commit -m"jiná změna - ale jenom v jednom souboru" gui.rst Po skončení směny - nebo v případě požáru:: git push A opusťte budovu Když se chci podívat, co se změnilo, kde jsem:: git status git tree když pracuji s větvemi ---------------------- vyrobím a přepnu se do větve:: git branch jmeno_vetve git checkout jmeno_vetve Dál pracuji normálně:: git commit git commit ... git push git fetch --all git rebase git commit git commit git commit ... Sem tam použiji `git tree` a `git status` (nebo holt `gitk`, no...) Když chci sloučit změny *do cílové větve `master`*:: git checkout master git merge jmeno_vetve git push