Git pro mě/Psaní semestrální práce v LaTeX
Psaní v LaTeX je teď (mimo jiné) moje práce. Určitě se mi hodí všechno z Psaní textových poznámek k přednáškám, ale používám i něco navíc. Třeba si do historie ukládám čísla verzí, které jsem poslal k revizi.
Nechce se mi, ale musím: Git je program, který slouží pro uchování verzí jednotlivých souborů v adresáři. Je to tak, i obrázků. Stejně ale raději uchovávám skript, který ten obrázek vygeneruje ze zdrojových dat.
Označování verzí
editovatPřed odesláním k revizi, když mám vše uložené v historii (takže mi git status píše "nothing to commit, working tree clean"), tak sGit pro měi označím verzi, kterou odesílám, příkazem
git tag vCISLO-VERZE
kde CISLO-VERZE je číslo verze a to "v" tam prostě dávám. Není to potřeba. Vlastně to vCISLO-VERZE může být cokoli, třeba DUCHAPLNY-TEXT.
Když se zapomenu a chci označit verzi někde v minulosti, udělám
git tag vCISLO-VERZE IDENTIFIKATOR-ULOZENE-ZMENY
a to mě přivádí k té historii.
Prozkoumávání historie
editovatPro stručnější a hezčí výpis historie totiž používám
git log --oneline --graph --decorate --all
což je důvod, proč se vyplatí ten krátký komentář při přidávání do historie oddělit na nadpis, volný řádek a trošku podrobnější "co" a "proč".
Abych nemusel takhle dlouhý příkaz zadávat pořád, mám pro něj nastavenou zkratku. Příkaz
git config --global --add alias.logg 'log --oneline --graph --decorate --all'
stačí zadat jenom jednou a pak už jen:
git logg
No a nebo si pohrát se souborem .gitconfig v domovském adresáři.
Ještě mě napadá, že bych si měl poznačit, jak se zbavím změny, kterou nechci. Jakože upravím soubor, takže při git status je červený, ale nechci ho udělat zelený, spíš chci, aby z git status zmizel. Na to používám
git checkout JMENO-SOUBORU
Zálohování
editovatObčas se mi stane, že potřebuji něco dopsat z jiného počítače. Protože používám zálohování na serveru mé oblíbené firmy, tak se k repozitáři můžu dostat z libovolného počítače připojeného k Internetu. Jak autorizovat další počítač vůči serverům mé oblíbené firmy, mají jistě někde v dokumentaci.
Důležité je, že pořád pracuji sám, jen teď ze dvou počítačů. Takže si aktualizuji svoji lokální Git historii adresáře (lokální repozitář), přidám změny do historie a nakonec aktualizuji repozitář na serveru. A mám jistotu, že to bude fungovat, protože se nemůže stát, že mezitím, co jsem přidával změny, aktualizoval repozitář na serveru někdo jiný.
Tak nejprve když nemám na druhém počítači vůbec nic a na serveru už něco ano, tak si zkopíruji celý repozitář na druhý počítač:
git clone git@ma.oblibena.firma:/tojsemja/muj-repo
což mi vytvoří adresář "muj-repo" s veškerým aktuálním obsahem. V něm pak přidám změny do historie a když jsem spokojený, tak aktualizuji repozitář na serveru:
git push
To s tím -u teď není potřeba, protože to vyřešil git clone. Jo a git clone je potřeba jen jednou. Aktualizaci lokálního repozitáře tak, aby odpovídal nejnovější verzi na serveru provedu příkazem:
git pull
A na závěr
editovatGit je program, který slouží pro uchování verzí jednotlivých souborů v adresáři.
git tag vCISLO-VERZE git log --oneline --graph --decorate --all git checkout JMENO-SOUBORU
◄ Git pro mě/Psaní textových poznámek k přednáškám | Psaní semestrální práce v LaTeX | Git pro mě/Psaní zdrojového kódu skriptu ► |