Z jakého důvodu mnoho vývojářů nevytváří dobré commity a správně je nepopisují? Buď jsou přesvědčeni, že to není potřeba nebo naopak to neumějí. Výsledkem je ztráta času a hlavně peněz. Dobrý commit se stane časem cenným zdrojem informací nejen pro nováčky, ale i zkušené vývojáře, kteří mohli zapomenout, proč danou věc dříve dělali.
1. Dobrý commit řeší vždy jeden ucelený problém
Dvě změny v jednom commitu nadělají více škod než užitku. Je možné, že v budoucnu budete chtít jednu změnu vrátit a druhou zachovat. Tento commit ale obsahuje obě změny. Je nutné manuálně oddělit jednu změnu od druhé. Jednu zachovat a druhou vrátit. Nebylo by rychlejší, kdybys ji rozdělil při vytváření?
2. Dobrý commit má skvěle padnoucí popisek, který rozkazuje!
Popisek vždy začíná rozkazem. Fix, add, change, update, remove místo fixes, fixed a podobně. Popiskem musíš být schopný dokončit tuto větu - If applied, this commit will …
První řádek má maximálně 50 znaků, začíná velkým písmenem a nekončí tečkou - je to nadpis commitu. Nebuďte liní commit rozdělit!
3. Dobrý commit musí MÍT DRUHÝ ŘÁDEK PRÁZDNÝ!
4. Dobrý commit odpoví na otázku PROČ?
Každý kolega musí vědět bez přečtení přilepeného issue, proč tento commit vznikl. Za pár týdnů může commit stále existovat, ale mezítím se vymění issue tracker. Tento detailnější popis má mít maximálně 72 znaků na řádek.
5. Dobrý commit zmiňuje vedlejší efekty
Samozřejmě je možné vynechat, pokud žádné nemá. Například, že commit zhorší výkon aplikace nebo se jedná pouze o dočasné řešené.
6. Dobrý commit může odkazovat na související položky
Zprávu ukončí odkazy na související položky. Kompletní adresa je užitečnější než jen číslo issue.
Closes: #3345 - [url]
Partial: #3345 - [url]
Related: #3345 - [url], #4423 - [url]
7. Dobrý commit není záloha vaší práce
Verzovací systém není backup systém ani emailový klient. Commit musí být logický celek a vždy řešit jeden problém. Neposílejte si kusy kódu s kolegy přes commity. Rozdělte si práci na nesouvisející problémy a každý řešte svůj.
8. Dobrý commit není mix bílého a logického
Nemixujte bílé změny společně s logikou. Je lepší nejdříve opravit formátování a vytvořit commit. Poté udělat logické změny a vytvořit další commit.
9. Nevymlouvejte se
„Ale vždyť to funguje“. Ano funguje, ale později přijde nový programátor a kód použije jiným způsobem. Následuje problém a dobře vytvořený commit pomůže.
„Ale já na tom pracuji sám.“ Nikdy nepracuješ sám. Za pár týdnů už jsi jiný člověk. Nepamatuješ si, proč jsi se tenkrát vydal tímto směrem.
„Nemám na to čas.“ Dobře vytvořený commit později ušetří dvojnásobek Tobě i Tvým kolegům.
Pokud máte zájem dozvědět se více informací a zajímavostí nejen o dobrém commitu, celý článek naleznete na blogu Jiřího Otáhala.