usar tag remote how hacer drop delete create como git

remote - how to delete tag git



HEAD y ORIG_HEAD en Git (3)

Desde git reset

"pull" o "merge" siempre deja la punta original de la rama actual en ORIG_HEAD .

git reset --hard ORIG_HEAD

Restablecerlo con fuerza hace que su archivo de índice y el árbol de trabajo vuelvan a ese estado, y restablece la punta de la rama para ese compromiso.

git reset --merge ORIG_HEAD

Después de inspeccionar el resultado de la combinación, es posible que el cambio en la otra rama no sea satisfactorio. Ejecutar " git reset --hard ORIG_HEAD " te permitirá volver a donde estabas, pero descartará tus cambios locales, que no deseas. " git reset --merge " mantiene tus cambios locales.

Antes de aplicar cualquier parche, ORIG_HEAD se establece en la punta de la rama actual.
Esto es útil si tiene problemas con múltiples confirmaciones, como ejecutar '' git am '' en la rama incorrecta o un error en las confirmaciones que se soluciona más fácilmente cambiando el buzón (por ejemplo, + errores en las líneas "De:").

Además, la combinación siempre establece '' .git/ORIG_HEAD '' en el estado original de HEAD para que se pueda eliminar una combinación problemática usando '' git reset ORIG_HEAD ''.

Nota: desde thread.gmane.org/gmane.comp.version-control.git/38379

HEAD es un puntero en movimiento. A veces significa la rama actual, a veces no.

Así que HEAD NO es un sinónimo de "rama actual" en todas partes ya.

HEAD significa "actual" en todas partes en git, pero no significa necesariamente "rama actual" (es decir, HEAD separado).

Pero casi siempre significa el "compromiso actual".
Es el commit " git commit " construido sobre, y " git diff --cached " y " git status " se comparan con.
Significa la rama actual solo en contextos muy limitados (exactamente cuando queremos que el nombre de una rama funcione --- restableciendo y aumentando la punta de la rama a través de commit / rebase / etc.).

Reflog es un vehículo para retroceder en el tiempo y las máquinas del tiempo tienen una interacción interesante con la noción de "actual".

HEAD@{5.minutes.ago} puede significar "desreferenciación de HEAD symref para averiguar en qué sucursal estamos AHORA MISMO, y luego averiguar dónde estaba la punta de esa rama hace 5 minutos".
Alternativamente, podría significar "cuál es el compromiso al que me habría referido como HEAD hace 5 minutos, por ejemplo, si" git show HEAD "en ese entonces".

git1.8.4 (julio de 2013) introduce ¡Introdujo una nueva notación!
(en realidad, será para 1.8.5 o 1.9, cuarto trimestre de 2013: reintroducido con commit 9ba89f4 )

En lugar de escribir cuatro letras mayúsculas " HEAD ", puede decir " @ " ahora,
por ejemplo, " git log @ ".

Ver commit cdfd948

Escribir '' HEAD '' es tedioso, especialmente cuando podemos usar '' @ '' en su lugar.

La razón para elegir '' @ '' es que se sigue naturalmente de la sintaxis ref@op (por ejemplo, HEAD@{u} ), excepto que no tenemos ref, ni operación, y cuando no las tenemos, tiene sentido asume '' HEAD ''.

Así que ahora podemos usar '' git show @~1 '', y toda esa bondad.

Hasta ahora '' @ '' era un nombre válido, pero entra en conflicto con esta idea, así que hagámoslo inválido. Probablemente muy poca gente, si alguna, usó este nombre.

Una publicación de blog durante el período 1.8.4-rc3 (14 de agosto de 2013) anunció que esta función se revirtió y se retrasó (Gracias Cupcake por el aviso).
De nuevo, se presenta de nuevo con commit 9ba89f4 (septiembre de 2013).

Ver commit 2c2b664 :

Revertir "Agregar nuevo @ acceso directo para HEAD "

Esto revierte el cdfd948 , ya que no solo se aplica a " @ " (y se aplica a modificadores como @{u} ), sino que también afecta, por ejemplo, a " refs/heads/@/foo ", que no debería.

La idea básica de dar una mano corta puede ser buena, y el tema se puede volver a intentar más adelante, pero volvamos para evitar afectar los casos de uso existentes por ahora para la próxima versión.

¿A qué se refieren estos símbolos y qué significan?

(No puedo encontrar ninguna explicación en la documentación oficial)


Entiendo que HEAD apunta a la rama actual, mientras que ORIG_HEAD se usa para almacenar la HEAD anterior antes de realizar operaciones "peligrosas".

Por ejemplo, git-rebase y git-am registran la punta original de la rama antes de que apliquen los cambios.


HEAD es una referencia (directa o indirecta, es decir, simbólica) a la confirmación actual. Es una confirmación que haya registrado en el directorio de trabajo (a menos que haya realizado algunos cambios, o equivalente), y es una confirmación sobre la cual "git commit" creará una nueva. Generalmente HEAD es una referencia simbólica a alguna otra rama nombrada; esta rama está actualmente seleccionada como rama o rama actual. HEAD también puede apuntar directamente a un commit; este estado se llama "HEAD desapegado" y se puede entender como en una rama anónima y sin nombre.

Y solo @ es un atajo para HEAD , ya que Git 1.8.5

ORIG_HEAD es el estado anterior de HEAD , establecido por comandos que tienen un comportamiento posiblemente peligroso, para que sea fácil revertirlos. Es menos útil ahora que Git tiene reflog: HEAD@{1} es aproximadamente equivalente a ORIG_HEAD ( HEAD@{1} es siempre el último valor de HEAD , ORIG_HEAD es el último valor de HEAD antes de una operación peligrosa).

Para obtener más información, lea la página de manual de git (1) , el manual del usuario de Git , el libro de comunidad de Git y el glosario de Git