Git HEAD^ vs Git HEAD~ vs Git HEAD{@}

John Wachira 15 febrero 2024
  1. Git HEAD^ (intercalación)
  2. Git CABEZA~ (Tilde)
  3. Git HEAD{@}
Git HEAD^ vs Git HEAD~ vs Git HEAD{@}

Este artículo discutirá la diferencia entre un signo de intercalación de Git y una tilde de Git. Un símbolo de intercalación de Git se representa con ^, mientras que una tilde se representa con ~.

También hablaremos del HEAD{@}. Empecemos.

Git HEAD^ (intercalación)

Al introducir un signo de intercalación en Git HEAD, apuntamos al primer padre de el commit. Por lo tanto, git HEAD^2 apunta al segundo padre de el commit.

¿Qué es el padre de un commit?

El padre de un commit entra en juego cuando fusionamos una o más ramas con otra. Veamos un ejemplo.

Nuestro repositorio tiene la rama Master en verde y la rama Other-Branch en amarillo.

git HEAD ^

Nuestro compromiso E en la other-branch se fusiona con el commit A en la rama maestra. Como tal, podemos decir que el commit A tiene dos commits principales.

Por lo tanto, un commit principal es simplemente el commit anterior de un commit.

Mira los comandos a continuación.

$ git show HEAD^ --oneline

Ejecutar el comando anterior moverá nuestro HEAD en el commit B si estamos en el commit A.

$ git show HEAD^2 --oneline

Por otro lado, el comando anterior cambiará nuestro HEAD para confirmar E.

Tenga en cuenta que HEAD^ y HEAD^1 tienen el mismo propósito.

Vale la pena señalar que la explicación anterior solo se aplica cuando tenemos ramas fusionadas. Si está trabajando con una rama, entonces HEAD^ será el equivalente de HEAD~.

Git CABEZA~ (Tilde)

Agregar una tilde a los puntos HEAD en el commit anterior de la última confirmación en nuestra rama. Es como retroceder en línea recta.

Veamos un ejemplo.

git HEAD ~

Por lo tanto, si nuestro HEAD está en el commit A, entonces git HEAD~ o git HEAD~1 nos cambiará a el commit B. HEAD~2 nos cambiará a cometer C.

Si estamos desprotegidos en el commit E en la other-branch, HEAD~1 nos cambiará al compromiso F y así sucesivamente.

Git HEAD{@}

Esta combinación apunta a la posición de la referencia en un momento determinado en nuestro repositorio local. Por lo general, aparece cuando se ejecuta un comando git reflog, como se muestra a continuación.

comando git reflog

En pocas palabras, un signo de intercalación es útil cuando fusionamos ramas en otras ramas y necesitamos cambiar a un commit en una rama diferente. La tilde nos permite cambiar a un commit anterior de la última confirmación en una rama específica.

Cuando se trabaja en una sola rama, HEAD^ es lo mismo que HEAD~.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Head