Если вы хотите объединить вашу группу коммитов в один коммит на ветке feature , вы можете сделать это следующим образом, но если эта группа коммитов уже передана на удаленный сервер, вы должны быть уверены, что нет один работает над веткой feature , потому что вам придется принудительно нажимать на эту ветку, и это подразумевает перезапись удаленной истории (то, что вы обычно не хотите делать, работая над публичным репозиторием *) 1006 * или более человек работают в этой отрасли).
git checkout FEATURE
(где FEATURE
должен быть заменен именем вашей функции ответвление.
git rebase -i HEAD~21
Предполагается, что вы хотите раздавить 20 последних коммитов. Если у вас есть HASH
самого старого коммита, вы также можете сделать git rebase -i HASH^
- Теперь вам нужно заменить
pick
на squash
(или s
) во всех строках, кроме первой, и сохранить файл
- Вы должны выбрать сообщение для этой новой фиксации. Git показывает вам сообщения коммитов, которые вы давите
- Если исходные коммиты уже были переданы на удаленный сервер, вам придется force push , потому что вы переписываете удаленную историю, заменяя эти 20 коммитов новыми. Это то, что вы обычно не хотите делать, если вы работаете с большим количеством людей в этой ветке.
git push -f