데브허브 | DEVHUB | Google's Git Killer Is INSANELY Better (and it's open source)Google's Git Killer Is INSANELY Better (and it's open source)
- Google이 개발한 오픈소스 버전 관리 시스템 Jiujutsu(JJ)는 Rust로 작성되어 Git의 강력한 대안으로 제시됩니다. 🚀
- GitHub 창립자 스캇 아콘, Hashicorp 창립자 미첼 하시모토, 심지어 Git의 창시자 리누스 토발즈까지 JJ의 강점을 인정했습니다. 💡
- JJ는 Git을 백엔드 데이터베이스로 활용하며, Git의 한계를 보완하는 클라이언트 역할을 합니다. 💾
- Git과 달리 JJ는 별도의 스테이징 영역(인덱스)이 없으며, 모든 변경사항이 자동으로 스테이징된 상태로 간주됩니다. 🎯
- JJ에서 '변경(change)'은 고정된 커밋이 아니라 지속적으로 진화하는 동적인 개념입니다. 🔄
jj status와 jj log는 JJ의 핵심 명령어로, 현재 상태와 변경 이력을 직관적으로 보여줍니다. 📊
jj new로 새로운 변경을 시작하고, jj describe로 설명을 추가하며, 이는 여러 번 수정 가능합니다. 📝
jj undo 명령어를 통해 마지막 작업을 손쉽게 되돌릴 수 있어 작업 흐름의 유연성을 높입니다. ↩️
jj squash는 여러 변경사항을 하나로 합치며, 특정 파일이나 코드 덩어리까지 선택적으로 스쿼시할 수 있습니다. 🧩
jj abandon은 현재 변경사항을 버리고 작업 복사본을 초기화하여, 복잡한 리셋 명령어 없이 깔끔하게 시작할 수 있게 합니다. 🗑️
jj edit 및 jj next-edit를 통해 변경 이력을 자유롭게 탐색하며 과거의 특정 시점으로 돌아가거나 앞으로 이동할 수 있습니다. 🕰️
- JJ는 명명된 브랜치 대신 '익명 브랜치' 개념을 사용하여 브랜치 없는 워크플로우를 지향합니다. 🌳
jj new 명령어로 여러 부모 변경을 지정하여 병합을 수행하며, 전용 병합 명령어가 필요 없습니다. 🤝
jj rebase는 충돌이 발생하더라도 항상 성공하며, 충돌 해결은 jj resolve를 통해 대화형으로 처리됩니다. ✅
jj resolve는 충돌 파일을 시각적으로 표시하고, 마우스 입력까지 지원하는 대화형 인터페이스로 해결 과정을 간소화합니다. 🖱️