Post #3801115
2026-07-14 04:35 UTC
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
Replies (0)
No replies.