Интерактивная перебазировка продолжает добавлять шаги после попытки сдавить коммит - PullRequest
0 голосов
/ 20 июня 2019

Когда я перебрасываю свою ветку на себя, чтобы очистить коммиты путем их сдавливания, моя перебазировка застревает в цикле, не зная, как это сломать. Это касается каждой отрасли, над которой я работаю, а не только одной.

Например, скажем, у меня есть ветка my-branch с тремя коммитами

commit 1
commit 2
commit 3

В моем терминале я пишу git rebase -i origin my-branch

Что подводит меня к интерактивному git (в моем случае к Sublime text)

Здесь я вижу все свои коммиты и заменяю последний на сквош, чтобы у меня были только коммиты 1 и 2:

p commit 1
p commit 2
s commit 3

Отсюда я вижу другое интерактивное окно, в котором я удаляю сообщение о коммите для коммита 3, оставляя только коммит 2.

Кажется, все это работает, но теперь я зациклен.

Например, на моем терминале он находится на ребазе ШАГ 3/3, затем я делаю rebase --continue он продолжает ШАГ 4/4 (без изменений) rebase --continue снова ШАГ 5/5 и так далее, фактически не покидая перебазироваться.

Я вынужден использовать rebase --abort, и мои коммиты не сквош.

1 Ответ

1 голос
/ 20 июня 2019

Если вы хотите получить результат в конце перебазирования, вы можете пропустить команду rebase -i вместе с этим трюком:

git checkout my-feature
git merge master # merge with the branch you want to rebase onto
# don't worry, that will go away with the following steps
git reset --soft master # move branch pointer to master, all changes between your branch and master (theoretically speaking, all changes related to your feature _only_ will be in index
git commit -m "My feature"

Вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...