2012-08-16 10 views
17

Me gustaría ver el archivo de una confirmación específica en el pasado, estoy pensando en git reset --hard pero no podré ver las confirmaciones más allá de eso cometer. ¿Cómo regreso a una confirmación (junto con el estado de los archivos), eche un vistazo a los archivos, vuelva al presente nuevamente?volver a una confirmación específica luego volver al presente

+1

Siempre puedes hacer 'git show commit: path/file' para simplemente mirar un archivo. – fork0

+0

He echado un vistazo a varios archivos, jeje. y me gusta más con un editor de texto. ¡Gracias, sin embargo, será útil la próxima vez! – Michelle

Respuesta

31

Suponga que su rama actual es master y el viejo confirmación se a1b2c3, a continuación, puede cambiar todos los archivos en el directorio de trabajo de nuevo al viejo comprometerse con:

git checkout a1b2c3 

... y volver a master con :

git checkout master 

esta forma de saltar sobre su historial en Git (es decir, el registro de salida una confirmación con su nombre de objeto, también conocido como su hash o sHA1SUM) es muy útil para buscar un buen precedente para cometer git bisect, por ejemplo, ya que no moverá sus ramas.

Una cosa a tener en cuenta es que recibirá una advertencia posiblemente confusa al hacer esto: si retira un compromiso de su nombre de objeto (a1b2c3) que lo pondrá en un estado conocido como "HEAD separado" , donde HEAD, que generalmente representa su rama actual, apunta directamente a una confirmación en particular. Esto no es algo de lo que preocuparse, es muy útil para moverse en su historial, pero significa que si crea nuevas confirmaciones cuando se separe HEAD, no moverán una rama hacia adelante.


fork0 señala en el comentario a continuación el acceso directo potencialmente útil git checkout -, que la comprobación de la rama anterior o cometer ese HEAD en la mira.

+0

hombre, ¿qué estaba pensando? Gracias. – Michelle

+0

No hay problema - Espero que los comentarios adicionales que agregué sean de uso. –

+4

Hay una manera más segura de volver a la confirmación anterior: 'git checkout -'. Este método utiliza el registro de salida (.git/logs/HEAD) y puede determinar de forma segura cuál fue la confirmación anterior. – fork0

Cuestiones relacionadas