Я учу мерзавца и пробую сквош. Я бы хотел раздавить все коммиты на мастере и остаться только с начальным. Например, моя история коммитов выглядит так:
2c825e339b60702b7b48c2ea022e473341d89a7d (HEAD -> master) another edit
f676a10db6a0cfe3cebb8f84aad971b481483181 second file
dc55b957a94bc4a3d6c1b6d8c134407aa4c8316c initial
После этого я побежал git rebase -i dc55b957a94bc4a3d6c1b6d8c134407aa4c8316c
Обычный способ, описанный во всей сети, состоит в замене каждого pick
на squash
, но первый. После этого я получаю эту историю коммитов:
2067070140c38f8ecf5f70894e6267bfee614d85 (HEAD -> master) second file
dc55b957a94bc4a3d6c1b6d8c134407aa4c8316c initial
Почему squash
не работал до первоначального коммита?
Более того, если я снова запускаю ту же команду сквоша, в интерактивном окне будет только 1 pick statement
. Изменение на squash
вызывает ошибку, а оставление на pick
ничего не делает. Я нашел
git reset --soft HEAD~1
git commit -m "1.0.0"
чтобы быть эффективным способом подавления только 2 коммитов. Как именно я могу использовать git rebase --squash
для достижения того же результата?