Давайте начнем с понимания того, что вы пытаетесь сделать.
Вы не хотите влиять на master
; но если бы слияние не конфликтовало, оно создало бы коммит слияния на master
(так же, как если бы вы разрешали конфликты и фиксировали сейчас). По сути, невозможно (конечно, не стоит тратить время на разработку метода) объединение нескольких веток без создания коммита.
Это на самом деле не имеет большого значения, потому что (1) вы всегда можете создать временную ветвь (или даже использовать отдельное состояние головы), если хотите, и (2) даже если вы передадите ее мастеру, вы всегда можете перемотать мастер, не нажимая коммиты слияния; только если вы нажмете на них, то удаление их из истории ветвей станет проблемой.
Оттуда, где вы находитесь, вы можете либо завершить объединение, либо прервать его (в этом случае вам в конечном итоге придется начать его заново, и затем завершит его). Я бы просто завершил это. Если вы хотите немедленно переместить master
туда, где он был, то после завершения слияния выполните
git reset --hard HEAD^
, а затем
git checkout HEAD@{1}
Теперь вы будете находиться в состоянии отсоединенной головы, а ваша текущая проверка - это висячий коммит, содержащий результат слияния. Если вы хотите, вы можете создать временную ветку в этой точке
git chekcout -b <temp_branch_name>
где <temp_branch_name>
- это то, что вы хотите назвать филиалом.
Затем выполните дополнительные слияния, проведите тесты. Когда вы закончите, вы можете просто вернуться к мастеру и, если вы создали временную ветку, вы можете удалить ее
git checkout master
git branch -D <temp_branch_name>
Конечно, другая альтернатива - выполнить все слияния на master
, запустить тесты, а затем
git reset --hard HEAD~3
для перемотки 3-х коммитов. (Опять же, помните, что эта опция работает при условии, что вы не нажимаете master
- и, вероятно, тоже не тянете ее - во время существования слияний.)