Интерактивный rebase
Редактор pick / reword / edit / squash / fixup / drop с прогресс-баннером
Интерактивный rebase в GitBor — это GUI-обёртка над git rebase -i. Менеджер: src/core/git/RebaseManager.ts. UI: src/renderer/src/features/rebase/.
Запуск
Правый клик по коммиту в графе → Rebase Interactive from here.... Откроется редактор со списком коммитов от базовой точки до HEAD.
Действия
Для каждого коммита можно выбрать одно из стандартных действий git rebase:
| Действие | Что делает |
|---|---|
| pick | Применить коммит как есть |
| reword | Применить, но открыть редактор сообщения |
| edit | Применить и остановиться, чтобы можно было внести правки |
| squash | Слить с предыдущим коммитом, объединив сообщения |
| fixup | Слить с предыдущим, отбросив сообщение текущего |
| drop | Удалить коммит из истории |
Порядок коммитов в редакторе можно менять перетаскиванием (это эквивалент перетасовки строк в git rebase -i).
Прогресс и управление
После старта rebase в верхней части окна появляется жёлтый баннер прогресса:
- Номер текущего шага (
Шаг 3 из 7). - Кнопка Continue — продолжить (
git rebase --continue). - Кнопка Skip — пропустить текущий коммит (
git rebase --skip). - Кнопка Abort — отменить весь rebase и вернуть HEAD на исходную позицию (
git rebase --abort).
Если в процессе возник конфликт, GitBor автоматически переключит вас на Merge Editor для конфликтных файлов. После разрешения — Continue.
Безопасность
Перед запуском rebase safety-слой:
- Сохраняет текущий HEAD-хеш (для аварийного восстановления).
- Делает auto-stash, если есть незакоммиченные изменения.
- Записывает событие
beginв WAL-журнал.git/GitBor-journal.json.
Если GitBor падает посреди rebase, при следующем запуске RecoveryManager обнаружит незавершённую операцию и предложит её продолжить или отменить.
TODO: скриншот редактора rebase и прогресс-баннера.