git - log - ¿Cómo configurar el directorio de trabajo a un commit anterior?
git pull (3)
Puede ingresar el código en otra rama del índice usando lo siguiente:
git checkout my-other-branch .
El punto es un especificador de ruta que indica que desea hacer esto para todo el repositorio. También podría especificar solo una carpeta específica. Técnicamente, puede especificar cualquier especificador ''tree-ish'' para el parámetro my-other-branch
, como una etiqueta, un hash de confirmación, algo como HEAD~1
, ect ... Si desea que estos cambios no se hayan programado, entonces podría hacer
git reset HEAD
Suponiendo que comenzó en un estado limpio, ahora tendrá el directorio de trabajo en el mismo estado que el de my-other-branch
.
Para rastrear en qué punto rompí una característica en mi software, necesito revisar las versiones anteriores de mi repositorio. Solo quiero establecer el directorio de trabajo en una confirmación anterior, jugar con el código, luego descartar los cambios y luego intentar otra confirmación.
No quiero cambiar nada acerca de los compromisos, ni eliminarlos ni crearlos. Intenté usar git reset
pero después de eso no se mostraba más la confirmación. Así que volví a descargar el repositorio, porque no sabía cómo revertirlo.
Un simple git checkout old-sha1
puede ser un comienzo, pero el comando real para ese tipo de tarea es:
Encuentre por búsqueda binaria el cambio que introdujo un error.
Si tiene un script capaz de probar si su árbol de trabajo "funciona" o no, puede ejecutar ese script en confirmaciones previas a través de git bisect
, ubicando la primera confirmación que rompe su prueba.
Tenga en cuenta que este comando aún no es compatible directamente con GitHub para Windows: tendrá que abrir un shell.
Un git checkout
lo dejaría en un HEAD separado, lo que no importa ya que no hará ninguna modificación.
Para volver a donde estabas, compra una sucursal:
git checkout master
Consulte " ¿Por qué git me separó la cabeza? ".
Usando git checkout <branch_name>
puede cambiar a la otra rama disponible. Si desea restablecer su HEAD
a la confirmación anterior, puede probar el siguiente comando:
- git reset --hard HEAD ~ 1 para restablecer la HEAD mediante una única confirmación
- git reset --hard HEAD ~ 2 para restablecer la HEAD en 2 confirmaciones y así sucesivamente
Además, si tiene la confirmación, puede probar este comando: git reset --hard <commit>
De esta manera, puede establecer el directorio de trabajo en una confirmación anterior.
Para descartar por completo los cambios, puede probar: git reset --hard
que limpiará su directorio hasta la confirmación anterior.