Přeskočit na obsah

Git pro mě/Psaní semestrální práce v LaTeX

Z Wikiknih

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í

[editovat | editovat zdroj]

Př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

[editovat | editovat zdroj]

Pro 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í

[editovat | editovat zdroj]

Obč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

[editovat | editovat zdroj]

Git 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 ►