He fusionado la rama beta en la rama principal. Empujé al origen. Ahora quiero que el maestro sea como era antes de la fusión tanto a nivel local como a distancia.¿Qué hash de confirmación para deshacer una fusión presionada usando git-revert?
una buena respuesta para undoing a merge that was already pushed sugiere
git revert -m 1 commit_hash
Si este es el camino a seguir, ¿cómo puedo determinar commit_hash? Me intentó sin éxito el hash devuelto por 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
He examinado tanto Git-log y gitk interpretaciones de las ramas, pero son muy largo, y no estoy seguro de lo suficiente de mi interpretación de sentir lo que debería busca ayuda antes de hacer un desastre quizás más grande. Beta se derivó de v2, que se derivó del maestro. Hubo algunas fusiones de master en v2 y beta en el camino ya que mantuve las nuevas ramas actualizadas con master. La fusión en la dirección de beta a maestro fue un error que deseo corregir.
Una vez que determine el punto de fusión, si encuentro algún compromiso en el maestro después de la fusión que realmente debería estar en la rama beta, ¿cuál es la mejor manera de moverlos?
Pruebe 'log --all --graph --pretty = tformat: '% Cred% h% Creset -% C (amarillo)% d% Creset% s% Cgreen (% an% cr)% Creset' - abbrev-commit --date = relative' (Yo personalmente lo alijo), mostrará las confirmaciones de todas las ramas y su fecha, y también dónde ocurrieron las fusiones. –