Toto je starší verze dokumentu!
Git
Git je distribuovaný systém správy verzí.
Základním prvkem je pracovní adresář, obsahující nějaké soubory (které obykle tvoří náš projekt; soubory jsou samozřejmě v adresáři, případně jakýchkoliv podadresářích). Inicializací gitu v našem pracovním adresáři vytvoříme repozitář, což je adresář .git, obsahující mnoho souborů, mimo jiné i konfiguračních apod. Přidáme/komitneme (commit) naše soubory, následně prováděné změny, takže každý commit vytváří novou verzi - nový stav - ve kterém se naše soubory nacházejí. Z repozitáře je poté možné kdykoliv vytvořit pracovní adresář a to v takové verzi, kterou si přejeme.
Repozitář se vždy nachází v mém pracovním adresáři, tedy commity provádím do něj. Repozitář je potom možné synchronizovat s repozitářem na jiném počítači (serveru) a je tak možné efektivně spolupracovat ve více lidech a/nebo zálohovat svou práci.
O gitu jinak
Klasické označení “distribuovaný systém správy verzí” rozdělme jej na dvě části:
Systém správy verzí - píšu důležitý dopis a dospěju k jeho první verzi. Večer ho dám přečíst manželce, která mi k tomu řekne své, přepíšu ho a mám druhou verzi. Ráno vstanu, znovu to přepíšu a mám třetí verzi. “Systém správy verzí” je to, co mi dovoluje tyto verze evidovat, prohlížet si co jsem mezi jednotlivýma verzema změnil, umožňuje vrátit k některé předchozí verzi, zvlášť poté co zase ukážu svou třetí verzi manželce.
Distribuovaný - tento přídomek je zde hlavně proto, že v době kdy git spatřil světlo světa, byly všechny dosavadní systémy správy verzí centralizované. Pokud ale nemáme zkušenost s těmi centralizovanými, nemusíme tomu věnovat zvlášť pozornost. V zásadě jde o to, že pro práci s gitem nepotřebujeme mít žádný server, zatímco ty centralizované ho nutně potřebovaly. Ty centralizované také hned předpokládaly, že na jednom projektu bude pracovat hodně lidí zaráz a nastavit to nebyla vůbec sranda. Git bude užitečný i jednomu člověku na malinkém projektu.
Git tvoří
Co někdo může nazývat gitem
Pojmy, které mi nebyly hned jasné
amend (česky pozměnit) - repair, modify, correct, alter jsou výrazy, kterým bychom asi rozumněli rovnou
hook (česky háček) - jinde se setkávám s výrazy bind, event, trigger
pre/post receive - mnou zažitým žargonem bych to nazval before/after receive
staging area (česky přípravný prostor), index (ve starém žargonu) - takový před-commit, místo kde si chystám co za chvíli commitnu (své výhody to nesporně má)
checkout (česky jít k pokladně) - slovům switch nebo load bych rozumněl hned
Různé související zkratky, pojmy
VCS, (česky můžete potkat SSV) - Version control system, Systém správy verzí
DVCS, DRCS - Distributed (re)vision control systems
CVS, SVN - předchůdci Gitu
Práce s gitem
Návyky jak git používat, jak často commitovat atp., nejsou nijak diktovány, každý si to ve svém projektu stanoví sám.