(TLDR)
Есть ли в git rebase -i
способ остановить редактирование без идентификатора коммита?
(/ TLDR)
Более длинная версия:
Фон
С помощью git rebase -i
я получаю текстовый редактор, в котором я могу определить список команд, начиная с pick COMMIT_ID
в каждой строке.
Один из вариантов - заменить «pick COMMIT_ID» на «edit COMMIT_ID», что означает, что после коммита он остановится, чтобы изменить коммит или выполнить некоторые ручные операции. Тогда я могу продолжить с git rebase --continue
.
Из списка опций:
# e, edit = use commit, but stop for amending
Вопрос
Интересно, есть ли возможность остановить редактирование без выбора коммита.
Мотивация / Вариант использования
например. если я хочу сжать диапазон коммитов, а затем остановиться для некоторых ручных операций, мне придется поместить edit + squash перед тем же идентификатором коммита - что недопустимо.
Вместо этого я бы сделал что-то вроде этого:
pick COMMIT_0 Change some colors
pick COMMIT_1 Make it faster
squash COMMIT_2 Fix a typo in previous commit
squash COMMIT_3 Fix another typo in previous commit
edit
pick COMMIT_4 Refactor some things
pick COMMIT_5 Introduce new options
Такая опция также позволит остановить перед первым коммитом в последовательности.
(я собирался сказать, что это позволит редактировать до первоначальной фиксации всей истории, но это не так - первоначальная фиксация никогда не является частью последовательности rebase)
Если я делаю это так, git говорит так:
Предупреждение: SHA-1 отсутствует или не является коммитом в следующей строке:
Интересно, что эффект более или менее тот, что я хочу, он останавливается, и я могу что-то делать. Но я уверен, что это не намеченный способ сделать это.