ver tag repositorio modificados log crear archivos git

tag - ¿Hay alguna manera de git checkout rama anterior?



git push (5)

De alguna manera quiero el equivalente de cd - para git. Si estoy en el master sucursal y hago checkout en foo , me encantaría poder escribir algo como git checkout - volver al master y poder escribirlo de nuevo para volver a foo .

¿Existe algo como esto? ¿Sería difícil de implementar?


Como señala @Karl y del manual de git checkout :

Como caso especial, la sintaxis "@ {- N}" para la N-ésima última rama verifica la rama (en lugar de separarla). También puede especificar, que es sinónimo de "@ {- 1}".

Entonces, tanto git checkout - como git checkout @{-1} funcionarán en este caso

Lo más cercano que creo es usar git reflog y analizar el último moving from branch1 to branch2 y git checkout branch1


De las notas de publicación de 1.6.2.

@{-1} es una forma de referirse a la última rama en la que estabas. Esto es
aceptado no solo donde se espera un nombre de objeto, sino en cualquier lugar donde se espera un nombre de rama y actúa como si usted escribiera el nombre de la rama.
Por ejemplo, git branch --track mybranch @{-1} , git merge @{-1} , y
git rev-parse --symbolic-full-name @{-1} funcionaría como se esperaba.

y

git checkout - es una abreviatura de git checkout @{-1} .


La forma más sencilla de hacer esto hoy en día es:

git checkout -

... que es un alias de:

git checkout @{-1}

Si quieres saber más sobre esto, escribí un artículo completo al respecto aquí: Checkout The Previous Branch In Git .


Llegué a esta pregunta con el mismo pensamiento para pagar mi sucursal anterior. Estoy usando ohmyz en Mac . A continuación el comando me ayudó.

$ gco -


Solo agregando más detalles a las respuestas anteriores para comprender el mecanismo por el cual funciona git checkout @{-N} . Recorre el historial para inspeccionar el historial de verificación, por lo que si desea implementar algo similar por su cuenta, debería poder analizar la salida de git reflog buscando líneas de git reflog . Puede verificar la implementación en la fuente de git sha1_name.c , específicamente la función interpret_nth_prior_checkout .