Хороший, интерактивный способ с git rebase -i
.Посмотрите ветку, посмотрите историю и выберите коммит, который находится перед первым коммитом, к которому вы хотите «присоединиться» (это называется сжатие).Затем
git rebase -i <the commit>
В редакторе вам будет показан список коммитов, начиная с одного после того, который вы выбрали, до самого последнего.Похоже,
pick 2f4b7fa Some commit message
pick 19f58bd Some other commit message
Найдите первый коммит из тех, к которым вы хотите присоединиться.Оставьте этот набор «выбрать».Затем, для всех тех, кого вы хотите раздавить, измените «выбор» на «сквош» или просто «s».Обозначение коммита «сквош» означает, что он будет объединен с коммитом непосредственно перед (над) ним.Затем сохраните и выйдите.Вам будет предложено ввести новое сообщение о коммите для нового коммита, который будет создан.Сохраните это и выйдите, и все готово.Обратите внимание, что вы также можете использовать представление rebase для перемещения коммитов, перетасовывая линии вокруг.Так что, если у вас есть какие-то коммиты, которые вышли из строя или вам нужно перемещать коммиты вместе, чтобы раздавить их, вы можете сделать это тоже.Еще одно замечание: если вы отправили свои коммиты на пульт, это может привести к ухудшению ситуации, особенно если вы работаете с другими людьми, которые извлекают данные с этого пульта.вы уже выдвинули ветку, и вы знаете, что никто другой не использует ее, просто следуйте приведенным выше шагам, а затем выполните git push origin master -f
, предполагая, что удаленное хранилище - «origin», и вы находитесь в основной ветке.Это нормальное нажатие, но -f говорит ему перезаписать все, что находится на пульте, и вместо этого принудительно применить ваши изменения.Когда вы работаете с репо, которым делятся другие, это становится опасным и / или сбивающим с толку.