Git Worktrees

Työskentele useilla haaroilla samanaikaisesti ilman stashausta — jokainen omassa kansiossaan.

Worktrees ratkaisevat yhden päivittäisen kehityksen turhauttavimmista ongelmista: tarve vaihtaa haaroja, kun olet kesken jonkin asian. Worktreeiden avulla et vaihda — avaat toisen haaran toisessa kansiossa ja työskentelet molemmissa samanaikaisesti.

Mikä on Git Worktree?

Normaalisti Git-repositoriossa on yksi työskentelyhakemisto — kansio, jossa tiedostosi sijaitsevat. Millä tahansa hetkellä täsmälleen yksi haara on Checkoutattu kyseisessä kansiossa. Jos haluat katsoa eri haaraa, sinun täytyy Checkouttaa se, mikä korvaa tiedostosi kyseisen haaran versiolla. Jos et ole Committanut nykyistä työtäsi, sinun täytyy ensin stashata se, mikä on ärsyttävää ja virhealtista.

Worktree on toinen (tai kolmas tai neljäs) työskentelyhakemisto linkitettynä samaan Git-repositorioon. Jokaisella Worktreellä on oma haara Checkoutattuna, oma tiedostotila ja oma historia. Ne kaikki jakavat saman .git-kansion ja Commit-historian — ne ovat vain erilaisia ikkunoita samaan repoon.

Konkreettinen esimerkki: tekoälyagenttisi on puolivälissä uuden ominaisuuden rakentamista haarassa feature/payments. Kollega pyytää sinua tarkastelemaan heidän PR:äänsä haarassa fix/login-bug. Sen sijaan, että stashaisit ominaisuustyösi, luot Worktreen fix/login-bug-haaralle erilliseen kansioon. Tarkastelet PR:ää siellä, kun ominaisuushaarasi pysyy koskemattomana alkuperäisessä kansiossaan.

Luo Worktree

  1. Avaa Git-paneeli — paina Cmd+G
  2. Klikkaa Worktrees-välilehteä paneelin yläosassa
  3. Klikkaa + Add Worktree
  4. Valitse haara — joko olemassa oleva haara listalta tai kirjoita uuden haaran nimi luodaksesi sellaisen
  5. Valitse kansion sijainti uudelle Worktreelle (oletuksena 1DevTool ehdottaa kansiota nykyisen projektikansiosi vieressä)
  6. Klikkaa Create — 1DevTool ajaa git worktree add -komennon ja avaa uuden Worktree-kansion aktiivisena työtilana

Uusi Worktree on nyt listattuna Worktrees-välilehdellä pääWorktreesi rinnalla.

Git worktree

Worktree-Terminalit

Kun 1DevTool luo Worktreen, se avaa myös uuden Terminalin, joka on kohdennettu kyseisen Worktreen kansioon. Haaran nimi näkyy Terminalin otsikossa, joten tiedät aina, missä haarassa työskentelet.

Tekoälyagentisi kyseisessä Terminalissa toimii Worktree-kansiossa — se voi lukea ja kirjoittaa tiedostoja, ajaa komentoja ja tehdä muutoksia kyseisessä haarassa ilman tietoisuutta muista haaroistasi tai häirintää niiden suhteen.

Add terminal for git worktree

Git worktree terminal with branch name

Voit ajaa agentteja useissa Worktreissä samanaikaisesti. Yksi agentti työskentelee payment-ominaisuuden parissa, kun toinen korjaa bugin eri haarassa. Molemmilla agenteilla on oma Terminaalinsa, oma tiedostokontekstinsa ja oma haaransa — ne eivät voi ristiriitaistua keskenään.

Poista Worktree

Kun olet valmis Worktreen kanssa — PR on yhdistetty, haara on poistettu — voit poistaa sen siististi:

  1. Avaa Git-paneeli ja siirry Worktrees-välilehdelle
  2. Etsi Worktree, jonka haluat poistaa
  3. Klikkaa sen vieressä olevaa roskakorikuvaketta
  4. Vahvista poisto

Tämä poistaa Worktree-kansion ja poistaa sen rekisteröinnin Gitistä (vastaa git worktree remove -komentoa). Itse haaraa ei poisteta — vain työskentelyhakemisto. Voit luoda Worktreen uudelleen myöhemmin tarvittaessa.

Vinkki: Käytä Worktreeitä tekoälyagentin ajamiseen ominaisuushaarassa samalla pitäen main-haaran vakaana. Agentti ei voi vahingossa rikkoa main-haaraasi.

Worktrees on yksi Gitin eniten alihyödynnetyistä ominaisuuksista. Tekoälyavusteisen kehityksen kontekstissa — jossa agentti saattaa tehdä kymmeniä tiedostomuutoksia minuuteissa — kyky eristää jokaisen agentin työ omaan haaraansa ja kansioonsa on merkittävä turvaverkko.