Kiihdytä kehitystyötäsi: Git worktrees, fuzzy-haku ja AI-koodausagentit
Monirepotarjujen sekasorto – ja miten se ratkaistaan
Vuonna 2024 useimpien devaajien koneella on kaaos git-klooneja. Työprojektit, sivutyöt, kokeilut ja asiakasrepost levittäytyvät sinne tänne. Montako kertaa olet etsinyt kadonnutta repoa komennolla find ~ -name "se-yksi-repo" keskellä yötä?
Tilanne pahenee, kun otat mukaan AI-koodausassistentit. Claude Code, GitHub Copilot tai omat agenttisi nopeuttavat hommaa hurjasti. Mutta ne vaativat erillisiä tiloja. Kun yksi agentti refaktoroi infraa ja toinen kirjoittaa API:ta, yhteinen hakemisto muuttuu riesaksi.
Branchojen vaihtelu tappaa tehon. Stashaus, konfliktit, kadonneet muutokset – nämä hidastavat sekä ihmisiä että AI:ta.
Kolmen työkalun pelastus: ghq + gwq + fzf
Hyvä uutinen: open source -yhteisö on jo keksinyt ratkaisun. Yhdistämällä nämä kolme työkalua saat järjestyksen, skaalautuvuuden ja täydellisen setupin AI-avusteiselle kehitykselle.
Git worktree: rinnakkainen devaus ilman säätöä
Taustalla on git worktree. Se mahdollistaa useita working directoryjä samalle repolle yhtä aikaa. Unohda branch-vaihdot ja stashit – tee jokaiselle tehtävälle oma worktree omalla branchillaan.
Miksi tämä on kultaa AI:lle? Eristys.
- Agentti A pyörii worktree A:ssa featurelle X
- Agentti B worktree B:ssä bugfixille Y
- Ei häiriöitä, täysi rinnakkaisuus
- Kehittyvät itsenäisesti
Sopii täydellisesti nykyaikaiseen AI-kehitykseen. Anna Claudelle analysoida koodia yhdessä worktreessä, testata toisessa ja pidä main cleanina alkuperäisessä repossa – kaikki samaan aikaan.
Työkalu 1: ghq – repo-kloonien järjestäjä
Ghq eli GitHub Query vakioistaa repojen sijainnin URLin perusteella. Ei enää satunnaisia paikkoja levyllä.
Rakenne näyttää tältä:
~/ghq/
github.com/
omistaja/
repo-nimi/
gitlab.com/
tiimi/
projekti/
Aseta juurihakemisto (yleensä ~/ghq) ja kaikki repot löytyvät samasta paikasta. Yksinkertainen filosofia: vakioi, automatisoi.
Työkalu 2: gwq – worktreejen mestari
Gwq eli git Worktree Query laajentaa ghq-ideaa worktreeihin. Worktreet syntyvät alkuperäisten repojen viereen samalle juurelle.
Konffi ~/.config/gwq/config.toml-tiedostoon:
[naming]
template = '{{.Host}}/{{.Owner}}/{{.Repository}}={{.Branch}}'
[worktree]
basedir = '~/ghq'
Esimerkki:
~/ghq/
github.com/acme/api # perusrepo
github.com/acme/api=feature-maksut # worktree maksuille
github.com/acme/api=bugfix-kirjautuminen # worktree bugille
github.com/acme/frontend # toinen perusrepo
github.com/acme/frontend=uudistus-ui # worktree UI:lle
=-suffix kertoo heti, mistä on kyse. Tärkeää, kun pyörität useita tehtäviä rinnakkain – oli tekijä ihminen tai AI.
Työkalu 3: fzf – nopea hakukone termeille
Fzf eli fuzzy finder on salaisuus, joka sitoo kaiken yhteen. Se muuttaa listan interaktiiviseksi haettavaksi UI:ksi terminiaalissa.
Esimerkki: ghq list | fzf. Kirjoita "api", lista suodattuu reaaliajassa. Enter, ja olet cd:ssä repossa.
Yhdessä vakiohakemistorakenteen kanssa tämä on supervoima. Unohda polut – muista avainsanat, fzf hoitaa loput.
Helpot navigointishortcutit
Kolmen työkalun ansiosta shell-funktioista tulee vaivattomia.
Perusloikka mihin tahansa repon tai worktreen:
j() {
cd "$(ghq list --full-path | fzf)"
}
Worktree-vaihto nykyisessä repossa:
jw() {
cd "$(git worktree list | awk '{print $1}' | fzf)"
}
Nämä pätkät tappavat kontekstinvaihtojen hidastuksen.
Miksi tämä on kriittistä AI-kehitykselle
Arvo näkyy, kun ohjaat useita AI-agetteja ja omia juttujasi. Esimerkiksi NameOceanin Vibe Hosting käyttää AI:ta featurejen nopeaan puskuun. Vakio filesystem ei ole luksus – se on välttämätön.
Agenttisi pystyvät:
- Löytämään koodin ripeästi
- Viittaamaan tiedostoihin varmasti
- Pitämaan tehtävät erillään rinnakkain
- Luomaan toimivia skriptejä, jotka eivät hajoa polkumuutoksissa
Aloitus 15 minuutissa
- Asenna: ghq, gwq ja fzf pakettipuhaltimella
- Konfiguroi ghq:
ghq.root = ~/ghqgit configissa - Konfiguroi gwq: tee
~/.config/gwq/config.tomltemplatella ja basedirillä - Lisää funktiot: kopioi shortcutit
.bashrc:iin tai.zshrc:oon - Kloonaa ghq get:llä – unohda git clone
Tuntien päästä ihmettelet elämääsi ilman tätä. Viikkojen päästä tämä on perusta modernille devaukselle.
Laajempi näkökulma
Tämä stack kuvastaa dev- tuottavuuden muutosta. Emme taistele tiedostojärjestelmää vastaan – harmonisoimme sen kanssa. Emme vastusta rinnakkaisuutta – omaksemme sen ihmisille ja AI:lle.
Aikaa nielevät kitkat eivät katoa yhdessä yössä. Mutta ne kasaantuvat. Jokainen vältetty switch säästää hetken. Jokainen vältetty konflikti pitää vauhdin. Jokainen itsenäinen AI-worktree moninkertaistaa tuloksen.
Jos dev-kokemus merkitsee sulle jotain – itselle tai tiimille – opettele tämä stack.