У меня было плохое слияние, я не знал, что это плохое слияние, пока я не подтолкнул его к GitHub, и теперь я не знаю, как его отменить/вернуть.Отмена плохого слияния
история выглядит следующим образом:
Я открыл две отдельные ветви и совершили несколько изменений в этих отраслях. Через некоторое время я решил объединить эти ветки обратно к мастер-ветке, и для этой цели я использую $ git merge branch_name
. Я объединил первую ветку и потом проверил журнал ведущей ветки: все фиксации на этой ветке были на хозяине. Затем я продолжил слияние второй ветви по той же команде. Затем я снова проверил журнал мастера, где увидел коммиты на ветке, которую я объединил, включая коммит со следующим комментарием: «Объединить ветвь branch_name». Комментарий, подобный этому, не был включен, когда я объединил другую ветку.
Короче говоря, проблема в том, что git объединил коммиты первой ветви, чтобы овладеть, как будто они являются коммитами мастера. Когда вы просматриваете сетевой график из «GitHub» или графа из «gitg», нет следа первой ветви слева, но его фиксации отображаются как коммиты главной ветви. Во второй ветке нет проблем: она показана отдельно и сливается, как ожидалось. Также обратите внимание, что после запуска команд слияния я продолжил удаление ветвей на $ git branch -d branch_name
, как это было самым неотложным делом, к сожалению.
Теперь я хочу вернуться в позицию непосредственно перед тем, как запустить два последовательных слияния. Любая помощь приветствуется. Если вы прокомментируете, почему это произошло, это будет приятно.
Я могу хотя бы сказать вам, что произошло то, что первая ветка была «быстрой перемоткой» слияния, и это совсем не плохо. Если вам действительно нужно сохранить историю, в будущем вам нужно вызвать merge с опцией '' --no-ff''. –
Пока вы не получите ответ, я могу добавить еще две вещи: во-первых, '' git reflog'' может помочь здесь, во-вторых, что бы вы ни делали, если вы отмените и повторите слияние с не-ff-слиянием, ll в конечном итоге имеет не-быструю перемотку вперед, то есть вы должны принудительно нажать на github. Это, как правило, плохо, потому что это вызовет серьезные проблемы для всех людей, которые вытащили репозиторий тем временем. –