Así que estoy trabajando en un proyecto con otras personas, y hay varios tenedores de github en los que se está trabajando. Alguien solucionó un problema y me fusioné con su tenedor, pero luego me di cuenta de que podía encontrar una mejor solución. Quiero revertir el compromiso que acabo de hacer. Intenté hacer esto con git revert HEADpero me dio este error:
fatal: Commit <SHA1> es una fusión pero no se dio la opción -m.
Qué significa eso? Cuando me fusioné y me comprometí, utilicé la opción -m para decir "Combinado con <nombre de usuario>".
¿Qué estoy haciendo mal aquí?
fuente

git cat-file -p [MERGE_COMMIT_ID]mostrará las ramas principales en orden. El primero en la lista sería-m 1, el segundo-m 2.git revert [HASH] -m 2me dice En la rama 1.x-1.x no hay nada que confirmar, el directorio de trabajo está limpio pero mi confirmación no se revierte.Digamos que el otro tipo creó una barra encima de foo, pero mientras tanto creaste baz y luego te uniste, dando un historial de
Nota: git lola es un alias no estándar pero útil.
Sin dados con
git revert:Charles Bailey dio una excelente respuesta como siempre. Utilizando
git revertcomo enelimina
bary produce efectivamente un historial dePero sospecho que quieres tirar el commit de fusión:
Como se documenta en el
git rev-parsemanualasí que antes de invocar
git reset,HEAD^(oHEAD^1) era b7e7176 yHEAD^2era c7256de, es decir , respectivamente, el primer y el segundo padre de la confirmación de fusión.Tenga cuidado
git reset --hardporque puede destruir el trabajo.fuente
lolaa sus comandos git:git config --global alias.lola "log --graph --decorate --pretty=oneline --abbrev-commit --all"Tuve este problema, la solución fue mirar el gráfico de confirmación (usando gitk) y ver que tenía lo siguiente:
Ahora entiendo que quiero hacer
Esto se debe a que
-m 1se fusionaría en función del padre común, donde como se-m 2fusiona en función de la rama y, esa es la que quiero elegir.fuente
git-revert, de eso se trata esta pregunta.-mopción, no exclusivamente sobregit merge. Es decir, el razonamiento detrás del uso de la-mopción parece ser similar para reversiones y selecciones de cereza. Si eso no es cierto, háganoslo saber. Como no he encontrado ninguna otra pregunta que aborde específicamente su uso, gracias por esta respuesta, que probablemente llevó a google a ayudarme a encontrar esta pregunta y una discusión útil y relevante.