Вы можете раздавить несколько наборов фиксаций сразу:
мерзавец перебазироваться -i HEAD ~ 15
pick 3f3416d T11 - some issue
pick 23031eb T12 - fix
pick 8239b70 T13 - improvements
squash e1e23fd T13 - one more fix
squash 200c8c6 T13 - last fix
pick e5b0286 T14 - great feature
pick d18bf1b T15 - removing unused files
pick a1b1821 T16 - refactor part 1.
squash dd090dc T16 - refactor part 2.
squash d87db6b T16 - refactor part 3.
pick da1dd09 T17 - new model of database
pick 39b4ace T18 - restfull api
pick 65521eb T19 - registration form
squash 8924091 T19 - login form
pick b44a25c T20 - new super feature
Во время перебазирования вам будет задан вопрос о новой фиксации сообщений для каждой группы:
1 группа
# This is a combination of 3 commits.
# The first commit's message is:
T13 - improvements
# This is the 2nd commit message:
T13 - one more fix
# This is the 3rd commit message:
T13 - last fix
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Author: Your Name <[email protected]>
# ...
2 группа
# This is a combination of 3 commits.
# The first commit's message is:
T16 - refactor part 1.
# This is the 2nd commit message:
T16 - refactor part 2.
# This is the 3rd commit message:
T16 - refactor part 3.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Author: Your Name <[email protected]>
# ...
3 группа
# This is a combination of 2 commits.
# The first commit's message is:
T19 - registration form
# This is the 2nd commit message:
T19 - login form
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Author: Your Name <[email protected]>
# ...
Спасибо, это сделал трюк. Чтобы закончить это, мне пришлось «git push -f». – BoltzmannBrain
'git push -f' необходим, если в диапазоне' 8239b70'-'b44a25c' уже были нажаты. Если вы последний раз нажали фиксацию, это будет 'pick 23031eb T12 - fix', это будет означать, что вы измените только свою локальную историю. КСТАТИ. если вам нужно будет восстановить старый ветвь, вы можете просто использовать старый хеш HEAD, чтобы создать новую ветку 'git checkout b44a25c -b ufff_Its_good_to_have_old_commits_back__branch' – noisy