Я пытаюсь скворовать последние 3 коммита с использованием autosquash
опций, предоставляемых git-rebase. У меня есть следующая история:перезагрузка с автосохранением не работает должным образом
* commit 78a7e4844fa32d2ef1bb7bd9b44c4a1b9551d31a (HEAD, new)
| Author: maxim koretskyi <[email protected]>
| Date: Fri Feb 20 10:29:48 2015 +0200
|
| squash! s3
|
* commit f25491cadc646baf14bd7e951245c6777230a1d7
| Author: maxim koretskyi <[email protected]>
| Date: Fri Feb 20 10:29:42 2015 +0200
|
| squash! s2
|
* commit b988237356ffb59752e49049d083c558373f9486
| Author: maxim koretskyi <[email protected]>
| Date: Fri Feb 20 10:29:24 2015 +0200
|
| squash! s1
|
* commit abbcdc833e5eaabe79681bd82087b4d7969e8599 (new1, ne, 9484)
| Author: maxim koretskyi <[email protected]>
| Date: Wed Feb 18 18:21:58 2015 +0200
|
| 3
Так я хочу фиксации с сообщениями s1
, s2
и s3
с префиксом squash!
быть сжато. Теперь я выполняю следующую команду:
$ git rebase -i abbcdc833 --autosquash
И так мерзавец открывает текстовый редактор со следующим содержанием:
pick b988237 squash! s1
pick f25491c squash! s2
pick 78a7e48 squash! s3
Но я ожидал, что это будет так:
pick b988237 squash! s1
squash f25491c squash! s2
squash 78a7e48 squash! s3
Что я делаю неправильно?
спасибо большое! Ты очень помогаешь мне на пути к обучению Гит :). Я пробовал с равным сообщением, и он сделал трюк. Интересно то, что после того, как я переустанавливаю фиксацию после 'abbcd',' squash' не работает. Любая идея, почему это так? –
также упоминается опция 'rebase.autosquash' с exlanation:' Если установлено значение true enable --autosquash по умолчанию. '.Означает ли это, что если этот параметр является «истинным», мне не нужно указывать '-autosquash' с' git rebase', и git автоматически ищет коммит с 'squash!'? –
Чтобы соответствовать теме и автозахватам, чтобы сделать ее, однострочный текст должен быть в наборе команд, которые 'rebase -i' собирается выполнить. Подумайте об этом так: 'rebase -i' сначала делает полный список ничего, кроме команд' pick'. Затем, если автозапуск включен, скрипт rebase ищет строки, которые имеют 'squash!' И 'fixup!' Сразу после части commit-ID. Он берет эти строки и рассматривает их как «инструкции по изменению другой линии выбора». Если для изменения нет линии выбора, инструкции остаются в силе; если * есть * строка выбора для изменения, следуют инструкции. – torek