Git-knife: редактируй историю git как таблицу в Excel

Новый open-source инструмент git-knife закрывает давно существующий пробел в экосистеме git: теперь можно редактировать сообщения коммитов, имена авторов, email и даты прямо в чистом десктопном GUI — без терминальных трюков и сложных CLI-команд. Проект построен на Tauri (фреймворк для кроссплатформенных десктопных приложений на базе Rust и WebView) и появился на Hacker News в августе 2026 года.

ℹ Что такое git-knife?
git-knife — десктопное приложение с графическим интерфейсом для редактирования метаданных git-коммитов: сообщений, имён авторов/committer’ов, email-адресов и дат (author date и committer date). Работает на macOS, Linux и Windows.

Зачем это нужно?

Существующие GUI-клиенты (GitKraken, Sublime Merge, Fork, lazygit) хорошо поддерживают переименование и переупорядочивание коммитов, но воспринимают даты коммитов как фактически неизменяемые и не дают редактировать identity автора для произвольных коммитов.

Инструменты, которые всё же умеют переписывать эти метаданные (git-filter-repo, трюки с git rebase env, git commit-tree), не имеют GUI. Именно этот пробел и закрывает git-knife.

«Polished GUI-клиенты хорошо работают с reword и reorder, но ни один не предлагает массовый regex-проход по identity автора» — авторы проекта.


Как это работает?

git-knife не переизобретает git — он вызывает системный git CLI и перестраивает коммиты через git commit-tree, повторно используя оригинальное дерево каждого коммита, так что содержимое файлов гарантированно никогда не меняется.

Процесс редактирования и применения изменений выглядит так:


graph TD
    A[Открыть репозиторий] --> B[Выбрать коммит]
    B --> C[Изменить: сообщение / имя / email / дата]
    C --> D{Bulk find & replace?}
    D -- Да --> E[Regex или литерал по всем полям]
    D -- Нет --> F[Review & apply]
    E --> F
    F --> G[Предпросмотр изменений]
    G --> H[Подтверждение]
    H --> I[git commit-tree перестраивает цепочку]
    I --> J[Backup ref сохранён автоматически]


Сравнение с конкурентами

ИнструментGUIПравка сообщенияПравка author dateПравка committer dateПравка author/emailBulk regex
git-knife
GitKraken⚠️ только amend⚠️
Sublime Merge⚠️ amend
Fork⚠️
git-filter-repo❌ CLI
lazygit (TUI)◐ TUI⚠️

Ключевые возможности MVP

На текущем этапе git-knife умеет: открывать репозиторий и показывать список коммитов в текущей ветке, редактировать сообщение, имя автора/email, author date, committer date и committer name/email, а также выполнять массовый find & replace по этим полям — литерально или через regex.

Дополнительно доступны:

  • Preview — предварительный просмотр всех изменений перед применением
  • Automatic backup ref — автоматический бэкап перед каждой перезаписью и восстановление в один клик
  • Предупреждение при попытке переписать уже запушенную историю
  • Merge-коммиты заблокированы от редактирования (защита от случайной порчи)
⚠ Осторожно с push

Редактирование коммита меняет его хеш и хеши всех последующих коммитов. Обычный git push будет отклонён как non-fast-forward. Используйте:

git push --force-with-lease origin <branch>

--force-with-lease отклонит пуш, если remote изменился с момента последнего fetch — это защищает от случайного затирания чужих коммитов.


Безопасность и восстановление

Перед каждым применением изменений git-knife автоматически создаёт backup-ссылку вида refs/knife-backup/<branch>/<epoch>. Восстановить предыдущее состояние можно прямо из интерфейса через панель Backups или через CLI:

# Найти backup-ссылку
git for-each-ref refs/knife-backup

# Откатиться
git reset --hard <backup-ref-or-hash>
💡 Bulk email fix
Главный практический сценарий — исправить неправильный email во всей истории. Откройте Bulk find & replace, выберите поля Author email и Committer email, введите старый и новый адрес — и изменения применятся ко всем коммитам за раз.

Требования и установка

Для запуска в режиме разработки потребуется:

  • git 2.x
  • Node.js + pnpm (corepack enable pnpm)
  • Rust (stable) — устанавливается через rustup.rs
  • На Linux (Debian/Ubuntu) — системные зависимости для Tauri v2
# Установка зависимостей Linux
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
  libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev

# Запуск в режиме разработки
pnpm install
pnpm tauri dev

Автоматические релизы через GitHub Actions собирают нативные инсталляторы для macOS, Linux и Windows с помощью tauri-action. Подписи кода пока не настроены, поэтому сборки для macOS и Windows неподписанные — это нормально для ранних тестировщиков.


Почему это важно для отрасли

Несмотря на зрелость экосистемы git, редактирование commit-метаданных с GUI до сих пор оставалось уделом либо неудобных CLI-инструментов, либо ограниченных «amend только последнего коммита» операций в популярных клиентах. Популярные GUI хорошо справляются с reword и reorder, но не дают доступа к committer date и author identity для произвольных коммитов, а CLI-инструменты вроде git-filter-repo, которые это умеют, лишены графического интерфейса.

Git-knife занимает именно эту нишу: чистый GUI, безопасная перезапись через git commit-tree, автоматические бэкапы и bulk regex — всё в одном десктопном приложении. Проект находится на стадии MVP, но уже покрывает большинство реальных сценариев правки истории.

📝 Типичные сценарии
  • Исправить email после смены рабочего адреса во всей истории репозитория
  • Привести даты коммитов в порядок после миграции из другой VCS
  • Исправить имя автора в нескольких коммитах без сложного rebase -i
  • Синхронизировать author date и committer date после ручного cherry-pick

Репозиторий: github.com/TheRealYT/git-knife