Git 사용자를 위한 Jujutsu(jj) 워크숍

1 day ago 5

vim.kr 주최로 2026년 10월 31일 튜링의사과에서 열린 약 3시간 반 분량의 jj 실습 워크숍 라이브 Tangled 개발자 boltless가 진행했고, Git 내부 구조에서 출발해 jj 데이터 모델, 기본 명령, 고급 워크플로우, Tangled 연동까지 3부로 구성됨 1부: Git 내부 모델과 jj 기초 Git 객체 모델(blob, tree, commit, tag, ref, 인덱스)을 먼저 짚고 jj가 이를 어떻게 다르게 다루는지 비교 jj에는 인덱스와 stash가 없음: working copy 자체가 하나의 커밋이고, 명령 실행 시 자동 스냅샷됨 change ID와 commit ID 분리: 내용이 바뀌어 commit ID가 달라져도 change ID는 유지되어 같은 변경을 계속 추적 가능 브랜치 대신 bookmark 개념 사용 Git 백엔드 위에서 동작하므로 기존 Git 저장소에 그대로 적용 가능하며, 커밋 메시지를 먼저 쓰고 작업하는 흐름을 권장 실습 명령: jj git init, jj status, jj log, jj describe, jj new, jj commit, jj squash -i, jj edit, jj file show 휴식 중 질의: describe -r로 과거 변경 메시지 수정, 브랜치 없이 jj git push -c로 바로 push 2부: 히스토리 조작과 고급 워크플로우 jj evolog로 한 change의 변천 이력 확인, jj undo/op log/op restore로 저장소 전체 작업 단위 되돌리기 가능 edit 워크플로우(기존 변경을 직접 수정)와 squash 워크플로우(새 변경에서 작업 후 부모로 합치기) 비교 jj new에 부모를 여러 개 지정해 머지 커밋과 옥토퍼스 머지 생성 jj rebase -b / -s / -r와 revset, --after/--before로 변경을 원하는 위치에 재배치 conflict가 일급 객체: 충돌이 나도 rebase가 멈추지 않고 충돌 상태를 커밋에 기록해 두었다가 나중에 해결 가능 메가 머지 워크플로우: 여러 작업 브랜치를 하나의 머지 커밋 위에 올려 동시에 개발하고 각 변경으로 분배 휴식 중 질의: Git 저장소 이전, stacked PR, interdiff 3부: Tangled와 원격 협업 Tangled: AT Protocol 기반의 탈중앙 Git 포지 소개 jj로 GitHub와 Tangled에 bookmark를 jj git pus...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵