Squash 2 превращается в 1

У меня есть две локальные коммиты:

commit adae40c5e2b69a41447b08cc3dcb77003611fbbe
Author: Me
Date:   Thu Mar 21 14:17:35 2019 +0000

    1.0.0

commit ceaa65ea06f48dc24554a6f798aae2d668f3a43d
Author: Me
Date:   Fri Feb 1 10:04:36 2019 +0000

    first commit

Как мне раздавить их, чтобы была только одна фиксация с сообщением 1.0.0?

Я пробовал следующее, но у меня ничего не получилось:

git rebase -i HEAD~2
git rebase -i master

person runnerpaul    schedule 21.03.2019    source источник
comment
Вы изменили pick на squash для второй фиксации в открывшемся окне редактора?   -  person kowsky    schedule 21.03.2019
comment
stackoverflow.com/search?q=%5Bgit-rebase%5D+first+commit   -  person phd    schedule 21.03.2019
comment
В вашей конкретной ситуации ответ RomainValeri, вероятно, является самым простым решением. Однако может быть полезно понять, почему интерактивное перебазирование не работает для вас, потому что перебазирование - это гораздо более мощный / более общий инструмент и будет работать во многих случаях, когда просто сброс + фиксация не будет   -  person Mark Adelsberger    schedule 21.03.2019


Ответы (1)


Для тех, кто не любит интерактивную перебазировку, в такой ситуации также довольно легко просто перемотать и повторить:

git reset --soft HEAD~2
git commit -m "1.0.0"
person RomainValeri    schedule 21.03.2019
comment
Перебазирование - особенно полезная функция в Git, но она не сжимает коммиты, а наоборот и сохраняет каждую фиксацию. Процесс reset затем commit, который вы выложили, идеально подходит для сжатия истории коммитов. - person benhorgen; 21.03.2019
comment
@benhorgen Вы правы. Из моего ответа неясно, но я сослался на интерактивное перебазирование (затем выбирая squash там, где нужно), а не на обычное перебазирование. - person RomainValeri; 21.03.2019
comment
@benhorgen - Я не понимаю, что вы имеете в виду. Перебазирование действительно может сжать коммиты. Верно, что исходные коммиты сохраняются (по крайней мере, временно) после любого перебазирования, но то же самое верно и для метода rebase-and-Recommit. - person Mark Adelsberger; 21.03.2019