Teknologi & innovasjonPublisert: 5. august 2024Sist oppdatert: 14. januar 20259 min lesing

Jujutsu versjonskontroll — det beste alternativet til Git?

En dyptgående guide til jj og hvorfor Google og Fastly har byttet

Norsk Næring
Norsk NæringRedaksjon
Jujutsu (jj) tilbyr en klarere mental modell enn Git, med full bakoverkompatibilitet med Git-repos.

Jujutsu (jj) tilbyr en klarere mental modell enn Git, med full bakoverkompatibilitet med Git-repos.

Jujutsu (jj) er et nytt versjonskontrollsystem som lover en renere mental modell enn Git. Her er alt du trenger å vite for å komme i gang.

Annonse

Bakgrunn og kontekst

Git er industristandarden for versjonskontroll og har vært det i nesten 20 år. Men å lære Git er beryktet vanskelig. Staging area, detached HEAD-tilstand, rebase-konflikter og den kryptiske reflog-en er kjente stressfaktorer for utviklere på alle nivåer. Jujutsu (jj) er et forsøk på å beholde Gits distribuerte kraftfullhet men redesigne brukergrensesnittet fra bunnen av.

Prosjektet startet som Googles interne prosjekt, men ble open source i 2022. Det bruker Git som lagringsbackend, noe som betyr at alle eksisterende Git-repoer fungerer umiddelbart med jj. Du kan bruke GitHub, GitLab og Gitea som normalt — jj er et lag oppå, ikke en erstatning for hele Git-infrastrukturen.

Kjernekonsepter og arbeidsflyt

Jujutsu introduserer noen få konsepter som forenkler versjonskontrollarbeidet dramatisk:

  • Ingen staging area: alle endringer du gjør i arbeidskatalogen er automatisk del av gjeldende 'change' — ingen 'git add' nødvendig
  • Anonyme brancher: du arbeider alltid på en 'change', ikke en 'branch'; brancher er bare labels du kan flytte fritt
  • Operasjonslogg (op log): alle kommandoer er reversible via 'jj op undo' — ikke bare commits men alle jj-operasjoner
  • Revsets: kraftig spørrespråk for å referere til grupper av commits, f.eks. 'jj log -r "ancestors(@, 5)"'
  • First-class konfliktbehandling: konflikter lagres i repoet og kan løses når det passer, uten å blokkere rebase
  • Rask logg: 'jj log' viser en kompakt, informasjonsrik graf som standard, uten parametere

Adopsjon og brukerundersøkelser

Jujutsu er fortsatt et nisjeverktøy, men vokser raskt blant avanserte utviklere.

GitHub-stjerner (mai 2025)Over 9 800
Kjente selskaper som bruker jj interntGoogle, Fastly, diverse open source-prosjekter
Økning i GitHub-aktivitet 2024Over 200 % vekst i contributors
Stack Overflow Developer Survey 2024Ikke på listen ennå — for tidlig fase
Antall commits i jj-repoetOver 8 000 (aktivt vedlikeholdt)
Annonse

Praktisk sammenligning med Git

Den praktiske fordelen med jj blir tydeligst i hverdagslige Git-operasjoner. Der Git krever 'git stash; git checkout main; git pull; git checkout feature; git stash pop' for å oppdatere main mens du er midt i arbeid, trenger jj bare 'jj git fetch'. Rebase-operasjoner som ville krevd en kompleks rebase-i i Git gjøres med enkle 'jj rebase'-kommandoer.

"Etter to uker med jj greier jeg ikke å gå tilbake. Operasjonsloggen alene er verdt byttet — det er som å ha en «undo» for alt jeg gjør i terminalen."

— Erlend Wilhelmsen, senior programvareutvikler, Computas

Komme i gang og fallgruver

Installasjon er enkel: 'brew install jj' på macOS, 'cargo install --git https://github.com/martinvonz/jj' generelt. For å bruke et eksisterende Git-repo: 'jj git init --colocate' i repoet. Etter det fungerer begge verktøyene side om side — kollegaer som fortsatt bruker Git merker ingen forskjell.

Den største fallgruven er å forvente at jj er som Git med et annet grensesnitt. Det er det ikke — den mentale modellen er fundamentalt annerledes. Bruker tid på å forstå 'changes' vs. 'commits' og revsets-systemet. Offisiell tutorial på martinvonz.github.io er utmerket. Unngå å blande jj- og git-kommandoer i samme økt til du er komfortabel med begge.

Veien videre

Jujutsu mangler fortsatt noen Git-funksjoner (GitHub PR-integrasjon er work in progress, git hooks-støtte er begrenset), men roadmapen er aktiv. Sapling, Facebooks interne versjonskontrollsystem som ble open source i 2022, løser lignende problemer og er et annet alternativ å vurdere.

For norske utviklere anbefales det å prøve jj på et personlig prosjekt eller et isolert team-prosjekt. Erfaringene er gjennomgående positive blant early adopters. Uansett om jj vinner markedsandeler på lang sikt, gir eksperimenteringen verdifull innsikt i hva versjonskontroll faktisk er — og gjør deg til en bedre Git-bruker av den enkle grunn at jj gjør de implisitte konseptene eksplisitte.

Annonse

Ofte stilte spørsmål

Hva handler «Jujutsu versjonskontroll — det beste alternativet til Git?» om?

Jujutsu (jj) er et nytt versjonskontrollsystem som lover en renere mental modell enn Git. Her er alt du trenger å vite for å komme i gang.

Hva bør du vite om bakgrunn og kontekst?

Git er industristandarden for versjonskontroll og har vært det i nesten 20 år. Men å lære Git er beryktet vanskelig. Staging area, detached HEAD-tilstand, rebase-konflikter og den kryptiske reflog-en er kjente stressfaktorer for utviklere på alle nivåer. Jujutsu (jj) er et forsøk på å beholde Gits distribuerte kraftfullhet men redesigne brukergrensesnittet fra bunnen av.

Hva bør du vite om kjernekonsepter og arbeidsflyt?

Jujutsu introduserer noen få konsepter som forenkler versjonskontrollarbeidet dramatisk:

Hva bør du vite om adopsjon og brukerundersøkelser?

Jujutsu er fortsatt et nisjeverktøy, men vokser raskt blant avanserte utviklere.

Hva bør du vite om praktisk sammenligning med Git?

Den praktiske fordelen med jj blir tydeligst i hverdagslige Git-operasjoner. Der Git krever 'git stash; git checkout main; git pull; git checkout feature; git stash pop' for å oppdatere main mens du er midt i arbeid, trenger jj bare 'jj git fetch'. Rebase-operasjoner som ville krevd en kompleks rebase-i i Git gjøres med enkle 'jj rebase'-kommandoer.

Hva bør du vite om komme i gang og fallgruver?

Installasjon er enkel: 'brew install jj' på macOS, 'cargo install --git https://github.com/martinvonz/jj' generelt. For å bruke et eksisterende Git-repo: 'jj git init --colocate' i repoet. Etter det fungerer begge verktøyene side om side — kollegaer som fortsatt bruker Git merker ingen forskjell.

Norsk Næring
Skrevet avNorsk NæringRedaksjon

Norsk Næring er en del av redaksjonen i Norsk Næring og dekker teknologi & innovasjon. Redaksjonen kvalitetssikrer alt innhold mot oppdaterte og pålitelige kilder.

Redaksjonell merknad: Dette innholdet er utarbeidet av Norsk Næring med hjelp av kunstig intelligens og kvalitetssikret av redaksjonen. Informasjonen er ment som generell veiledning og erstatter ikke profesjonell rådgivning. Feil eller unøyaktigheter? Kontakt oss på help@norsknæring.no.