GIT: Co to je a jak usnadní práci na projektu?
Pokud jste součástí vývojového teamu nebo s vývojáři spolupracujete, určitě jste je už zaslechli bavit se o GITu, verzích, repositářích, commitech a nebo o pull / merge requestech. V tomto článku Vám zkusíme přiblížit o čem se bavili a vysvětlit, co verzovací systém je.
Co je to verzovací systém?
Verzovací systém je software, který se používá pro správu změn v souborech a dokumentech během jejich vývoje. Správné využívání verzovacího systému, jako je například GIT, patří do best practices v oblasti vývoje programů, webů a aplikací. Využívání verzovacího nástroje následně umožňuje pohodlnou práci více programátorů na jednom projektu současně. Usnadňuje a zpřehledňuje jim sdílení změn v kódu mezi sebou. Současně jim pomáhá tvořit různé verze programu, ke kterým se jde v průběhu času vracet.
Slovníček GIT pojmů:
Než se posuneme dál, pojďme si projít pár pojmů, které souvisí s Gitem a které budeme dál v článku využívat:
- Repositář - prostor, kde se ukládají jednotlivé verze projektu. Lokální kopie repositáře je vždy u vývojáře, vzdálená je na Git serveru.
- Commit message - krátká zpráva, kterou vývojář píše, když vytváří záznam o provedených změnách (příkaz git commit).
- Push - jde o operaci nahrání změn na git server (příkaz git push).
- Pull - jde o operaci stáhnutí změn z git serveru (přikaz git pull).
- Pull / merge request - po tom, co vývojář nahraje změny, obvykle vytvoří pull / merge request. V tento moment se čeká na schválení změn (obvykle kontroluje člověk a automatizované testy). Po schválení se tyto změny propíšou na produkci.
- Větev / branch - v reposítaři se tvoří větve, ve kterých se samostatně vyvíjí jiná verze projektu. Větve se můžou spojovat pomocí operace merge.
- Konflikt - pokud dva vývojáři pracovali na stejném souboru na stejném místě, tak git si neumí poradit s tím, jaké změny od jakého vývojáře jsou "ty správné". Proto se vytvoří konflikt, kdy je potřeba aby vývojář rozhodl, které změny se aplikují a které se zahodí.
Proč je dobré verzovací systém používat?
V našem článku se zaměříme na GIT. Jde o populární, hodně rozšířený a snadno naučitelný nástroj pro verzování ne jen zdrojového kódu, ale také například dokumentů a dalších souborů. Jaké jsou ale výhody využívání Gitu při vývoji softwaru?
- Snadná správa verzí - v Gitu je snadno dohledatelná jakákoliv změna, kdo a kdy jí provedl. V Gitu jde snadno přepínat mezi jednotlivými verzemi projektu a tím se dá snadno vracet do minulosti.
- Snadná spolupráce ve více lidech - Git umožňuje synchronizaci změn v projektu mezi vývojáři. Každý vývojář při nahrávání svých změn na Git musí vytvořit krátkou commit message, kde popíše hlavní myšlenku toho, co změnil. Následně změny odešle na git pomocí příkazu "git push".
- Distribuovaný zdrojový kód - pokud na projektu pracuje více lidí, je kopie dat distribuovaná mezi každého člena týmu. Pokud někdo z nich přijde o veškerá data (omylem smazal, ztráta nebo odcizení notebooku apod.), jde hlavní zdroj dat obnovit od kolegů vývojářů. To samé platí při selhání hlavního serveru.
Best practices pro psaní commit message
Správný způsob, jak psát commit message, může být podstatný pro úspěch vedení verzovacího systému a spolupráci v týmu. Způsob, jak tvořit commit message, se může lišit v závislosti na firemní a týmove politice, kultuře a struktuře. Zde přikládáme několik typů, jak se commit message tvoří u nás:
- Krátký, ale výstižný - commit message musí být stručné a jednoznačné. Nikoho nebaví číst romány.
- Odkazuj se na ticket nebo číslo úkolu - odkaz na zadání v ticketu je někdy víc jak tisíc slov a pomůže v pochopení kontextu změny.
- Dodržuj formát zpráv - velká / malá písmena, závorky, uvozovky, jazyk commit message.
- Používej imperativní vyjadřování - místo "Přidal jsem funkci" je lepší "Přidává novou funkci".
- Rozděl změny na logické celky - než jeden velký commit, tak radši více menších. Je to lepší pro hledání v historii.
O Gitu by toho šlo napsat mnohem víc, například porovnání toho, když jste na projekt sám a když jste na projektu ve více lidech, merge politiky v nástrojích jako je Github, GitLab nebo Bitbucket nebo praktickou ukázku s nejpoužívanějšími příkazy. To vše bude v dalších článcích.
Pokud zvažuje vývoj webu, webové aplikace nebo mobilní aplikace, tak nás neváhejte kontaktovat.
Mohlo by Vás zajímat:
- Jaký je rozdíl mezi webem a webovou aplikací?
- Diagram případů užití: první krok u vývoje aplikace.
- Barevné modely, prostory a jejich využití v CSS.