A veces reviso alguna versión anterior del código para examinar o probar. He visto instrucciones sobre qué hacer si deseo modificar compromisos previos, pero supongo que no hago cambios. Después de hacerlo, p. git checkout HEAD^
, ¿cómo vuelvo a la punta de la rama? .. git log
ya no me muestra el SHA de la última confirmación.¿Cómo volver a la última confirmación después de verificar una confirmación anterior?
Respuesta
Si conoce el comprometen desea volver a es la cabeza de una rama, o está etiquetado, a continuación, puedes
git checkout branchname
Puede también use git reflog
para ver a qué otros commits ha referido su HEAD (o cualquier otro árbitro) en el pasado.
Editado para agregar:
En las nuevas versiones de Git, si sólo se ejecutó git checkout
o alguna otra cosa que mover el HEAD
vez, también se puede hacer
git checkout -
para volver a donde sea antes de la última salida. Esto fue motivado por la analogía con el lenguaje cáscara cd -
para volver a lo que uno se directorio de trabajo previamente en.
me gustaría mencionar que el ejemplo típico sería "maestro git checkout". Una de las dificultades que tuve al aprender a utilizar git fue no saber qué palabras clave específicas (por ejemplo, "maestro") puedo sustituir en realidad por palabras de marcador de posición como "nombre de rama". – AbePralle
'master' no es realmente ningún tipo de palabra clave, como lo es' HEAD'. Es solo el nombre de la sucursal por defecto en un nuevo repositorio. Puede ejecutar 'git branch' para obtener una lista de ramas en su repositorio, y' git tag -l' para obtener una lista de etiquetas. Del mismo modo, 'origin' es el nombre predeterminado del control remoto del que se clona un repositorio, pero no tiene nada de especial. – Novelocrat
Si no estaba claro, 'git reflog' te da una lista de hashes, en cuyo punto puedes usar' git checkout [commit-hash] '. – jbnunn
Eche un vistazo a la GUI gráfica ... gitk
que muestra todas las confirmaciones. A veces es más fácil trabajar gráfica ... ^^
sí, esto es en realidad la forma en que he hecho en el pasado - pero no tener la interfaz gráfica de usuario disponible en este momento –
git checkout master
principal es la punta, o el último cometió. gitk solo le mostrará hasta dónde se encuentra en el árbol en ese momento. git reflog mostrará todas las confirmaciones, pero en este caso, solo quiere la sugerencia, así que git checkout master.
gitk --all muestra todas las confirmaciones. – Kharoof
Había encontrado con esta pregunta en este momento y tienen algo que añadir
Para ir a la más reciente se comprometen:
git checkout $(git log --branches -1 --pretty=format:"%H")
Explicación:
git log --branches
muestra registro de confirmaciones de todas las sucursales locales
-1
limitan a una confirmación → más reciente cometer
--pretty=format:"%H"
formato para mostrar sólo comprometerse de hash
git checkout $(...)
salida uso de subnivel como argumento a favor de la caja
Nota:
Esto dará lugar a una cabeza separada, aunque (porque Checkout directamente a el compromiso). Esto se puede evitar extrayendo el nombre de la rama usando sed
, que se explica a continuación.
Para ir a la rama de la más reciente comprometerse:
git checkout $(git log --branches -1 --pretty=format:'%D' |sed 's/HEAD -> \|tag: [^,]*\|,.*//g')
Explicación:
git log --branches
muestra registro de confirmaciones de todas las ramas locales
-1
límite a uno commit → commit más reciente
--pretty=format:"%D"
formato para mostrar únicamente los nombres árbitro
|sed 's/HEAD -> \|tag: [^,]*\|,.*//g'
ignoran CABEZA, etiqueta y extraer el primero de los varios nombres de rama
git checkout $(...)
utilización salida del subnivel como argumento a favor de la caja
Nota:
Este será siempre solamente use el primer nombre de rama si hay múltiples para esa confirmación.
De todos modos, creo que la mejor solución sería simplemente para mostrar los nombres árbitro para el más reciente comprometerse a saber dónde caja para:
git log --branches -1 --pretty=format:'%D'
P. ej crea el alias git top
para ese comando.
Puede utilizar uno de los siguientes comandos git para esto:
git checkout master
git checkout branchname
Si su última cometer es en la rama principal, puede simplemente usar
git checkout master
Bienvenido a SO. No se recomienda publicar respuestas que ya se hayan enviado. Esta solución ya ha mencionado varias veces. – AChampion
- 1. ¿Volver a la confirmación local?
- 2. Git: volver al estado de confirmación anterior
- 3. Pagar la confirmación anterior y convertirla en una confirmación nueva
- 4. Amend una confirmación de que no era la confirmación anterior
- 5. Git - retroceso a una confirmación anterior
- 6. Git deshacer última confirmación
- 7. Git restablecer a la confirmación anterior
- 8. Volver a la revisión anterior en Bazar
- 9. volver a una confirmación específica luego volver al presente
- 10. ¿Volver a una confirmación específica basada en la identificación de confirmación con Git?
- 11. Git: cómo retroceder a la última inserción/confirmación
- 12. ¿Cómo puedo volver a una confirmación previa de SVN?
- 13. git: cómo volver a ordenar (severamente) una secuencia de confirmación
- 14. ¿Cómo uso 'git reset --hard HEAD' para volver a una confirmación anterior?
- 15. Git: ver mi última confirmación
- 16. ¿Cómo puedo modificar un idiota confirmación anterior
- 17. Git: pasar a la confirmación anterior y posterior
- 18. Cómo eliminar la última n confirmación en Github y localmente?
- 19. ¿Cómo hacer una confirmación automática después de la fusión exitosa?
- 20. ¿Debo realizar una confirmación después de una rebase?
- 21. HG: Deshacer una confirmación de la historia
- 22. SVN: volver a la versión anterior
- 23. Usando TortoiseGit borrando todo después de una determinada confirmación
- 24. Git revertir última confirmación y sacarlo de la historia
- 25. ¿Cómo creo una nueva rama de Git a partir de una confirmación anterior?
- 26. Restaurar archivo de la confirmación anterior en git
- 27. SVN confirmación atómica cómo-a
- 28. Obtener la última confirmación del repositorio de Git
- 29. ¿Cómo fusiono una única confirmación?
- 30. ¿Cómo hacer referencia a la confirmación inicial?
En cuanto a la frase 'git log' de su pregunta, siempre puede ejecutar 'git log --all' (o más útilmente,' git log --oneline --graph --all'). – Wildcard