Saaste
@saaste@mementomori.social
🇫🇮 Töissä kannan päässäni ohjelmoijan hattua. Vapaa-ajalla satunnaista puuhastelua liikunnan, konsolipelien, kirjojen ja muun härväämisen saralla. Introvertti jurottaja joka ei ole erityisen hyvä edes sosiaalisessa mediassa. 🇬🇧 At work, I wear a programmer's hat. In my spare time, I do random things related to sports, console games, books and other fun stuff. Grumpy introvert who is also not very good at social media. Toots mostly in Finnish. #NoBridge #NoBots #NoIndex
mementomori.social
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