Ilman asianmukaista huolenpitoa Git-historiasi voi helposti muuttua sekavaksi sotkuksi. Hyvien commit-viestien kirjoittaminen on tärkeää, mutta yhtä tärkeää on committien todellinen sisältö. Tässä on hyödyllisiä ohjeita niiden laadun parantamiseen.
Mads Jensen
Mads works as a consultant at Eficode in Denmark. He is passionate about automation and testing, and in general to get the most of the tools he uses. He occasionally contributes to open-source projects, in particular to the Django web framework. He likes riding his bike for both sport and transportation and enjoys watching movies.
Johdanto
Commit-historiasta huolehtiminen on tärkeää. Gitistä opettaessamme viittaamme usein Chris Beamin oppaaseen commit-viestien kirjoittamisesta. Yhtä tärkeää on kuitenkin se, mitä commitit todella sisältävät. Alla on muutamia ohjeita, joiden avulla voit parantaa commitien luettavuutta ja muutosten jäljitettävyyttä sekä helpottaa katselmointiprosessia rajaamalla commitin olennaisiin muutoksiin.
1. Sisällytä vain yksi muutos
Pyri siihen, että commit sisältää vain yhden muutoksen ja että muutos näkyy selkeästi commit-viestissä. Näin commitin vaikutus on selkeä, ja commitien palauttamisesta tai yhdistämisestä aiheutuvat sivuvaikutukset vähenevät. Tätä kutsutaan yleensä atomisen commitin tekemiseksi.
2. Viittaa issue-seurantaan
Kun työskentelet issuen parissa, rajaa muutokset vain kyseisen issuen ratkaisemiseen. Muista myös lisätä issuen tunniste commit-viestiin. Näin muutokset on helpompi jäljittää niitä vastaavaan issueen, ja samalla pienennät riskiä, että korjaus rikkoo jotain siihen liittymätöntä.
3. Erottele kontekstista riippumattomat testit
Kun commitoit muutoksia, lisäät todennäköisesti testejä niiden varmistamiseksi. Nyrkkisääntönä kaikki testit, jotka läpäisevät ilman tekemiäsi muutoksia, tulisi commitoida erikseen. Testikattavuuden kasvattaminen on aina tervetullutta, mutta regressiotestien ja uuden koodikattavuuden sekoittaminen rikkoo atomisen Git commitin periaatetta.
4. Vältä koodi- ja tyylimuutosten sekoittamista
Tyylimuutokset, kuten sisennysten korjaaminen ja rivien lopussa olevien välilyöntien lisääminen tai poistaminen, ovat sinänsä kunnossa. Ne kuitenkin vaikeuttavat commitin katselmointia, koska muutat enemmän rivejä kuin on tarpeen. Pidä mielessä ainakin seuraavat asiat:
Kun siivoat koodia esimerkiksi järjestämällä importit uudelleen tai poistamalla käyttämätöntä koodia, tee se erillisissä commiteissa.
Jos repositoriossasi on dokumentaatiota, rivinvaihtojen tekeminen esimerkiksi 80 merkin kohdalla pienentää muokattujen kappaleiden diffiä.
Lisää linteri CI-tarkistusporttiin, jotta sinun ei tarvitse tehdä tyylimuutoksia myöhemmin.
Hyödynnä työkaluja yhtenäisen tyylin ylläpitämiseksi. Esimerkiksi Pythonin Black voi korostaa tyylirikkomukset.
Joillakin editoreilla on omat näkemyksensä tyylistä, ja ne voivat tehdä tyylimuutoksia automaattisesti. Tämä voi aiheuttaa ongelmia suurissa tiimeissä, joissa kaikki eivät välttämättä käytä samaa editoria. Harkitse EditorConfigia, jonka avulla voit kirjoittaa YAML-tiedostoon sääntöjä siitä, miten editorin tulee muotoilla eri tiedostotyypit. Rivinvaihtoasetuksia voi hallita myös Gitillä (katso core.autocrlf), mutta EditorConfig on tehokkaampi ja ilmaisukykyisempi. Voit myös tarjota ohjeet IDE:n määrittämiseen niin, että se noudattaa koodityyliä.
5. Minimoi rivit, joihin tulevat commitit koskevat.
Joissakin kielissä voit vähentää tulevien muutosten aiheuttamaa hälyä. Käytä Pythonissa sanakirjoissa rivin lopussa pilkkua, jotta seuraavan commitin ei tarvitse muuttaa kahta riviä yhden kohteen lisäämiseksi. Haskellissa voit tehdä saman lisäämällä pilkun rivin alkuun.
Alla olevassa Python-esimerkissä uusi merkintä kosketti vain yhtä riviä kahden sijaan.
Hyödyllisiä Git-työkaluja
Jos näiden ohjeiden noudattaminen tuntuu käytännössä vaivalloiselta, ei hätää. Git tarjoaa useita työkaluja siistien, atomisten commitien tekemiseen.
git add --patch tai git gui mahdollistavat stageen lisättävien koodimuutosten valitsemisen vuorovaikutteisesti
git commit --amend mahdollistaa viimeisimmän commitin tekemisen uudelleen, jos olet tehnyt virheen
git rebase -i mahdollistaa paikallisen historian uudelleenkirjoittamisen, jos haluat siivota useita commiteja
Yhteenveto
Git commitin tulisi pohjimmiltaan olla atominen muutos, joka sisältää vain yhden muutoksen koodin, testit ja dokumentaation. Yllä olevat ohjeet auttavat sinua tekemään siistejä commiteja, pitämään historian järjestyksessä ja helpottamaan katselmointiprosesseja. Lisäksi olemassa oleviin ominaisuuksiin tehtävissä tulevissa muutoksissa alkuperäiset commitit toimivat erinomaisena viitekohtana tai mallina tarvittavalle työlle. Aluksi tämä voi vaatia hieman kurinalaisuutta, mutta hyöty on ehdottomasti vaivan arvoinen.
- CI/CD
Subscribe to our newsletter
Related blogs