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