Averiguar si algo es una fusión es fácil. Eso es todo lo que se compromete con más de un padre. Para comprobar esto, se puede hacer, por ejemplo
$ git cat-file -p $commit_id
Si hay más de una línea `padre' en la salida, que encontró una fusión.
Para revertir no es tan fácil. En general, las reversiones son solo confirmaciones normales que suceden para aplicar la diferencia de una confirmación previa en reversa, eliminando de manera efectiva los cambios que se han introducido. No hay nada especial de lo contrario.
Si se creó una reversión con git revert $commit
, entonces git generalmente genera un mensaje de confirmación que indica la reversión y qué cometer revertido. Sin embargo, es posible revertir de otras formas, o simplemente cambiar el mensaje de confirmación de una confirmación generada por git revert
.
En busca de los mensajes de revertir cometer generados ya podría ser una heurística lo suficientemente buena para lo que está tratando de lograr. Si no, tendrías que mirar a través de otras confirmaciones, comparar sus diferencias entre sí, buscar una es la operación inversa exacta de otra. Pero incluso esa no es una buena solución. A menudo, las reversiones suficientes son ligeramente diferentes a la inversa de la confirmación que están revocando, por ejemplo, para acomodar los cambios de código que ocurrieron entre la confirmación y la reversión.
fijo que. ¡Gracias! – rafl