Solo soy nuevo en git y estoy mirando el gancho posterior al pago.
Según tengo entendido, el siguiente comando restaurará “nombre de archivo” desde la última confirmación:
git checkout -- filename
Cuando obtengo el control después del pago, obtengo 3 argumentos, a saber, 2 SHA y un tipo.
Ambos SHA son iguales, es decir, el SHA de la última confirmación y el tipo tienen un valor de 0, lo que significa que se produjo una extracción de un archivo.
¿Pero en casa puedo averiguar qué archivo se desprotegió?
La documentación dice:
El gancho recibe tres parámetros:
- la referencia del HEAD anterior,
- la referencia del nuevo HEAD (que puede haber cambiado o no), y
- una bandera que indica si el pago fue en una sucursal (cambio de sucursal,
flag=1
) o una extracción de archivo (recuperación de un archivo del índice, flag=0
).
En tu caso, tu HEAD no ha cambiado. Es posible que tenga algunos archivos modificados inicializados de nuevo en el contenido HEAD, pero aparte de eso, todos los archivos que ya se han desprotegido siguen estando desprotegidos:
git show --pretty="" --name-only HEAD
Dado que no ha cambiado de sucursal, el indicador se establece en 0, incluso si todos los archivos ya se han desprotegido. Por lo tanto, no hay una manera fácil de ver cuáles se modificaron y se restablecieron al contenido de HEAD.
La clave es: ese gancho posterior al pago no puede afectar el resultado de ‘git checkout’.
En otras palabras, el índice y el árbol de trabajo ya reflejan su estado final (y no recuerdo lo que había antes)
Si necesita una lista de archivos restablecidos por un git checkout .
lo mejor es hacer primero un git stash
.
Entonces un git checkout
: su gancho posterior al pago puede usar git stash show
para enumerar los archivos que estaban presentes antes del pago.
¿Cómo puedo saber qué archivo se desprotegió? Básicamente, no lo haces. Puede (en algunos sistemas operativos) hurgar en el conjunto de procesos en ejecución y ver si puede encontrar un
git checkout [commit] -- path1 path2 ... pathN
comando que está ejecutando su gancho; si es así, esos serían los archivos que se copiaron de algún compromiso específico en el índice y luego en el árbol de trabajo.– torek
8 de junio de 2017 a las 5:56