Почему интерактивный ребаз сдавливает мои коммиты вместе?

Допустим, у меня есть три следующих коммита:

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 опция добавляет файлы к последнему коммиту вместо создания нового.

Это должно работать хорошо, если вы пропустите эту опцию.

Другие вопросы по тегам