Какой хэш коммита для отмены принудительного слияния с помощью git -revert?

Я объединил бета-ветку с основной веткой. Я нажал на происхождение. Теперь я хочу, чтобы мастер был таким, каким он был до слияния, как локально, так и удаленно.

Хороший ответ для отмены уже отправленного слияния предлагает

git revert -m 1 commit_hash

Если это действительно правильный путь, как я могу определить commit _hash ? Я безуспешно пробовал хэш, возвращаемый merge -base:

$ git merge-base --all master beta
1f4b949b7ef97abf913ae672e3acd0907abfac1b
$ git revert -m 1 1f4b949b7ef97abf913ae672e3acd0907abfac1b
error: Mainline was specified but commit 1f4b949b7ef97abf913ae672e3acd0907abfac1b is not a merge.
fatal: revert failed

Я просмотрел как git -log, так и gitk представления веток, но они очень длинные, и я достаточно неуверен в своей интерпретации, чтобы чувствовать, что мне следует обратиться за помощью, прежде чем создавать еще больший беспорядок. Бета была получена из v2, которая была получена из мастера. Было несколько слияний от master к v2 и beta по пути, так как я сохранил новые ветки с -до -даты с master. Слияние в направлении от бета к мастеру было ошибкой, которую я хочу исправить.

Как только я определяю точку слияния, если я обнаружу какие-либо коммиты, сделанные на мастере после слияния, которые действительно должны быть в бета-ветке, как лучше всего их переместить?

7
задан Community 23 May 2017 в 12:24
поделиться