Jujutsu — когда Git встретил Mercurial и стал удобнее

03 Jun, 2026

Знакомая ситуация? Только собрался сделать git commit, как получаешь "Your local changes to the following files would be overwritten...". Или потратил полчаса на разрешение конфликтов при rebase, а они снова возникают при следующем слиянии. Jujutsu (или просто jj) — это свежий взгляд на систему контроля версий, который избавляет от этих и многих других проблем.

Что такое Jujutsu?

Jujutsu — это VCS нового поколения, которая:

  • Совместима с Git «из коробки» (использует Git как бэкенд)
  • Вдохновлена лучшими идеями Mercurial и Darcs
  • Добавляет инновационные фичи вроде автоматического разрешения конфликтов

Разрабатывается с 2019 года, сейчас используется командой Google (хотя и не является официальным продуктом компании).

Кому стоит присмотреться?

  • Разработчикам, уставшим от сложностей Git
  • Командам, которые ценят удобство Mercurial
  • Всем, кто работает с большими репозиториями и сложными ветвлениями

5 причин попробовать Jujutsu

1. Рабочая копия — это полноценный коммит

В отличие от Git, где есть разделение на рабочую директорию, индекс и коммиты, в Jujutsu рабочая копия сама является коммитом. Это значит:

  • Никаких "рабочая директория грязная"
  • Можно задавать сообщение коммита до завершения изменений
  • Не нужен git stash — просто переключайтесь между коммитами
# В Git вам бы пришлось:
git stash
git checkout other-branch
git stash pop

# В Jujutsu просто:
jj checkout other-branch

2. Конфликты — объекты первого класса

В Git конфликты — это временное состояние, которое нужно немедленно разрешать. Jujutsu хранит информацию о конфликтах прямо в коммитах:

Реклама
  • Можно отложить разрешение конфликтов
  • Решения автоматически применяются к потомкам коммита
  • Нет страха «испортить» историю при rebase

Пример разрешения конфликтов

3. Полная история операций

Jujutsu записывает все действия с репозиторием:

  • Кто что сделал и когда
  • Состояние репозитория после каждой операции
  • Возможность откатить любое действие, не только последнее

Это особенно полезно при совместной работе — теперь можно точно сказать, «как мы сюда попали».

4. Автоматический rebase

При изменении коммита все его потомки автоматически перебазируются. В Git для этого нужно явно указывать --update-refs, а в Jujutsu это происходит по умолчанию.

5. Совместимость с Git

Можно:

  • Работать с существующими Git-репозиториями
  • Использовать GitHub/GitLab/Bitbucket
  • В любой момент вернуться к обычному Git

Совместимость с Git

Технические особенности

  • Написана на Rust (использует библиотеку gitoxide)
  • Модульная архитектура — в будущем возможны другие бэкенды кроме Git
  • Оптимизирована для производительности

Когда особенно пригодится?

  1. При активном рефакторинге — автоматический rebase сохранит нервы
  2. В больших командах — понятная история операций упрощает коммуникацию
  3. При работе с длинными ветками — конфликты разрешаются предсказуемо

Насколько готов к production?

Проект активно развивается, но:

  • Основные функции стабильны
  • Нет поддержки submodules
  • Возможны изменения форматов хранения до версии 1.0.0

Разработчики (включая создателя Мартина фон Цвайгберга) уже больше года используют Jujutsu для работы над самим Jujutsu — хороший знак!

Как начать?

  1. Установите через пакетный менеджер:
    # macOS
    brew install jj
    
    # Linux (Ubuntu)
    sudo apt install jj
    
  2. Пройдите официальный туториал
  3. Попробуйте на тестовом репозитории

Jujutsu — это не «ещё один клон Git», а свежий взгляд на контроль версий. Если вы:

  • Часто путаетесь в Git
  • Цените удобство Mercurial
  • Хотите больше предсказуемости при работе с историей

— самое время попробовать. Возможно, это будет ваш новый основной VCS.

А если остались сомнения — загляните в сообщество Jujutsu, разработчики активно помогают новичкам.