Koodisi turva AI-kamaluuksilta: Jujutsu pelastaa päivän
Kun AI menee pieleen: Kehittäjän painajainen
Olet syvällä koodauksessa AI-avustajan kanssa. Claude, Gemini tai joku muu LLM-työkalu pyörii. Yhtäkkiä homma karkaa käsistä. Agentti tulkitsee pyyntösi väärin ja ajaa git clean -komennon. Tunnit kokeilua katoavat. Tai konteksti katkeaa, termari tyhjenee ja AI unohtaa kesken kaiken. Pyydät perumista, mutta vastaus on: "En voi palauttaa niitä – ne eivät olleet Gitissä."
Tällaiset tilanteet yleistyvät, kun kehittäjät ottavat AI-koodausapureita käyttöön. Tosiasia on tämä: perinteiset Git-työnkerrat eivät sovi AI-avusteisen kehityksen kaaokseen.
Perinteisen Gitin heikkoudet
Git on mahtava väline, mutta se vaatii tietoisia committeja. Päätät itse, milloin tallennat merkittävän version. AI-agentit pyörittävät nopeita iterointikierroksia, ja tässä syntyy riski. Luotat liikaa kesken session etkä committaa. Tai AI muokkaa useita juttuja, törmää ongelmiin ja peruu ne ennen kuin ehdit tallentaa.
Suurin kauhu? AI tuhoaa repoa, ja työsi on mennyttä, koska se ei ollut commitattu.
Jujutsu: Turvaverkko AI-aikakaudelle
Jujutsu eli jj on versionhallintajärjestelmä, jonka filosofia eroaa perinteisestä. Jj snapshottaa working directoryn automaattisesti joka komennon jälkeen. Jokainen muutos, kokeilu tai vahingossa tehty poisto tallentuu operation logiin.
Kuvittele Git, jolla on täydellinen muisti. Git seuraa vain sun tekemiä committeja, jj tallentaa kaiken, mitä repoon tapahtuu.
Helppo aloitus: Ei häiriöitä
Parasta? Jj ja Git elävät rinnakkain saumattomasti.
Olemassa olevaan Git-repoon asennus on yksinkertainen:
jj git init --colocate
Valmista. Jj pyörii Gitin rinnalla. Tiimisi ei huomaa mitään – se on täysin läpinäkyvä. Pushaat remoottiin Gitillä kuten ennenkin.
Jujutsun peruslogiikka
Termistö eroaa Gitistä, mutta konseptit ovat simppelit:
@(working set): Kuten Gitin working directory, mutta automaattisesti tallennettu- Commit-ID:t: Kirjaimet
[g-z], erottuvat Git-hashista - Operation log: Kaikki repo-muutokset kronologisesti
Näin se näyttää käytännössä:
$ jj
@ lrklqzxy panozzaj@gmail.com 2025-11-22 16:06:25 b76e8471
│ (no description set)
○ qppwxvzp panozzaj@gmail.com 2025-11-06 10:57:53 master
Add site perf audit document
@ on sun nykyinen työ. Jokaisella muutoksella oma ID. Kirjaimet tekevät niistä helppoja muistaa.
Taika: Työn palautus
Nyt se osuus, jossa jj loistaa. AI sotkee pahasti. Katso operation history:
jj obslog --revision @ --patch --limit 5
Näet viimeiset 5 operaatiota diffien kera. Tarkalleen mikä muuttui, milloin – ja voit palauttaa ne. Vaikka AI poisti tiedostoja tai sekoili, kaikki on logissa.
Miksi jj sopii AI-kehitykseen
AI-agentit eroavat ihmiskehittäjistä. Ne:
- Tekevät muutoksia salamannopeasti ilman valvontaa
- Väärintulkitsevat ohjeita ja muokkaavat yllättäen
- Menettävät kontekstin pitkissä sessioissa
- Käyttävät tuhoisia komentoja huomaamattaan
Git olettaa ihmisen kontrollin commiteista. AI rikkoo sen. Jj tekee kaikista tiedostomuutoksista palautettavia.
Käytännön integrointi
Lisää jj AI-workflowsiin ilman muutoksia:
- Ennen AI-sessiota: Muista, että jj tallentaa kaiken
- Kesken session: Anna AI:n mennä – jj kirjaa muutokset
- Jos menee pieleen:
jj obslognäyttää ongelmahetken - Lopuksi: Committaa Gitille normaalisti
Jj toimii Gitin alla. Pushaat GitHubiin tai GitLabiin entiseen malliin, mutta turvaverkko on alla.
Nollariippuvuus
Jujutsu ei tuo ylimääräistä taakkaa:
- Asennus on suoraviivaista
- Ei muutoksia Git-prosesseihin
- Tiimi ei huomaa
- Colocation estää duplikaatit
- Värikoodatut ID:t erottuvat selvästi
Ei käytännössä miinuksia AI-projekteissa.
Tulevaisuusnäkymä
AI-avustajat sulautuvat yhä tiiviimmin kehitykseen. Työkalut kuten jj ovat pian välttämättömiä. Kysymys ei ole siitä, meneekö AI pieleen – vaan onko sulla tapa korjata se.
Jos käytät Claude Codea, Gemini CLI:tä tai vastaavia, asenna jj. Se on vakuutus väistämätöntä kömmähdystä vastaan.
Tuleva minäsi kiittää, kun palautat tunnin työn yhdellä komennolla Gitin tyhjyuden sijaan.