Почему интерактивный ребаз сдавливает мои коммиты вместе?
Допустим, у меня есть три следующих коммита:
c - Third Commit
b - Second Commit
a - First Commit
Я использую следующие команды для выполнения интерактивного перебазирования (как описано в другом потоке Stackru)
$ git rebase --interactive bbc643cd^
В редакторе по умолчанию измените 'pick' на 'edit' в строке, фиксацию которой вы хотите изменить. Внесите свои изменения, а затем зафиксируйте их в том же сообщении, что и раньше
$ git commit --all --amend --no-edit
изменить коммит, и после этого
$ git rebase --continue
Проблема в том, что иногда, когда я заканчиваю, коммиты объединяются в один коммит (самый старый коммит, a
в моем примере).
Кажется, что это может иметь какое-то отношение к конфликтам слияния для разрешения, поэтому я подозреваю, что после разрешения я могу продолжить неправильно. После разрешения конфликтов слияния я не уверен, нужно ли мне просто git rebase --continue
или оба $ git commit --all --amend --no-edit
А ТАКЖЕ git rebase --continue
, Кажется, что в обоих случаях у меня были слияния в конце, но я не уверен.
Что я делаю неправильно?
1 ответ
Действительно, как сказал Тобиа Тесан в комментарии, --amend
опция добавляет файлы к последнему коммиту вместо создания нового.
Это должно работать хорошо, если вы пропустите эту опцию.