henry blyth
Esta respuesta le indica cómo realizar el pago en la sucursal anterior y explica de manera útil @{-1}
: https://stackoverflow.com/a/7207542/3150057
La rama anterior es importante si escondí algo de código antes de cambiar de rama y ahora estoy pensando en trabajar en el alijo.
¿Hay alguna manera de ver rápidamente el nombre de la sucursal anterior sin buscar? git reflog show
para lo último checkout: moving from foo to bar
¿entrada?
Más información:
Esta es una solución a mi olvido de mi contexto de trabajo anterior, que suele ocurrir después de volver del almuerzo.
git rev-parse @{-1}
muestra la confirmación HEAD de la rama que sería desprotegida por git checkout -
pero no el nombre de la sucursal.
git branch --contains @{-1}
enumerará cada rama con ese compromiso.
Sería útil enumerar las sucursales con ese compromiso como HEAD, ya que podría ayudarme a recordar mi contexto de trabajo anterior, pero no estoy seguro de cómo hacerlo.
Si solo quieres el nombre, puedes usar:
git name-rev $(git rev-parse @{-1}) --name-only
Así por ejemplo:
$ git checkout mybranch
$ git checkout master
$ git name-rev $(git rev-parse @{-1}) --name-only
> mybranch
Es preferible a la respuesta aceptada porque no muestra “cabezas” en el nombre, por lo que se puede encadenar con otros comandos de git.
-
¡Lindo!
git name-rev @{-1} --name-only
también funciona– byohay
13 de enero de 2021 a las 9:25
Tal vez esto es lo que quieres:
git describe --all $(git rev-parse @{-1})
Desde el git-describe
página man:
--all
En lugar de usar solo las etiquetas anotadas, use cualquier referencia que se encuentre en refs/ namespace. Esta opción permite hacer coincidir cualquier rama conocida, rama de seguimiento remoto o etiqueta ligera.
Entonces, por ejemplo, si hago esto:
$ git checkout mybranch
$ git checkout master
$ git describe --all $(git rev-parse @{-1})
Veo:
heads/mybranch
-
Eso lo hace, gracias! pude usar
git describe --all @{-1}
y obtuve el mismo resultado.–Henry Blyth
4 de noviembre de 2016 a las 15:18
-
Conseguir
fatal: Not a valid object name @{-1}
🙁– Colgado
1 de diciembre de 2017 a las 6:10
-
@{-1}
se refiere a “larama/confirmación desprotegida antes de la actual”. Si solo ha usado una sola rama (p. ej., master
), entonces no hay una “rama anterior” y obtendrá el error que describe. Intentargit checkout -b testbranch
y luego ver a qué@{-1}
se refiere.– alondras
1 de diciembre de 2017 a las 13:06