Git-knife: GUI для правки истории коммитов как таблицы
Git-knife — десктопный GUI на Tauri для редактирования сообщений, авторов и дат коммитов. Заполняет пробел между мощными CLI-инструментами и удобными, но ограниченными GUI.
Git-knife: редактируй историю git как таблицу в Excel
Новый open-source инструмент git-knife закрывает давно существующий пробел в экосистеме git: теперь можно редактировать сообщения коммитов, имена авторов, email и даты прямо в чистом десктопном GUI — без терминальных трюков и сложных CLI-команд. Проект построен на Tauri (фреймворк для кроссплатформенных десктопных приложений на базе Rust и WebView) и появился на Hacker News в августе 2026 года.
Зачем это нужно?
Существующие 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/email | Bulk 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-коммиты заблокированы от редактирования (защита от случайной порчи)
Редактирование коммита меняет его хеш и хеши всех последующих коммитов. Обычный 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>
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