Pitää jakaa oma nörttivinkki, joka on tuonut itselleni iloa, koska tykkään siitä, että versiohallinnan historia on joksenkin siisti eikä täynnä muutoksia, jotka ovat pelkkiä korjauksia edellisiin muutoksiin. Kyseessä Gitin fixup + autosquash -yhdistelmä.
Otetaan esimerkiksi tilanne, jossa teen kaksi commitia, joissa molemmissa luon uuden tiedoston:
$ git add file1.txt
$ git commit -m "Added file 1"
$ git add file2.txt
$ git commit -m "Added file 2"
Nyt muutoshistoria näyttää tältä:
$ git log --oneline
13811d30d Added file 2
aec05fec7 Added file 1
Jos haluan korjata virheen file1.txt -tiedostosta, voin tehdä muutoksen ja sen jälkeen luoda commitin seuraavalla komennolla:
$ git commit --fixup aec05fec7
Tämä luo commitin, joka viittaa aikaisempaan commitiin. Muutoshistoria näyttää nyt tältä:
$ git log --oneline
398cd9ba0 fixup! Added file 1
13811d30d Added file 2
aec05fec7 Added file 1
Voin luoda useita tällaisia korjauksia. Kun kaikki korjaukset on tehty, voin ajaa seuraavan komennon:
$ git rebase -i --autosquash origin/main
Git yhdistää automaattisesti kaikki korjaukset osaksi alkuperäisiä commiteja, eikä historiaan jää typeriä korjauksia ja korjausten korjauksia. Muutoshistoria pysyy siistinä! 🧹
ps. Tukisipa Mastodon markdown-syntaksia niin saisi nämä koodiesimerkit tyyliteltyä vähän kivemmin ☺️
#ohjelmointi #git #versionhallinta
#versionhallinta
1 posts · Last used Jul 14
You've seen all posts