git - remove - Diferencia entre HEAD y master
git rename tag (3)
La respuesta simple es que HEAD
es un puntero / etiqueta a la confirmación más reciente de la rama en la que se encuentra actualmente. master
es la rama predeterminada creada cuando inicializó un repositorio de git (por ejemplo, git init
).
Puede eliminar la rama master
(por ejemplo, git branch -D master
). No puede eliminar el puntero HEAD
.
¿Cuál es la diferencia entre HEAD
y master
en Git?
Hice un clon de un proyecto en GitHub y deseo enviar mis cambios al control remoto. ¿Pero a cuál debería presionar?
Simplemente presione los cambios de su rama actual
git push origin
y empujará los cambios de su rama '' B
'' a '' origin/B
''.
Si estás en tu rama master
, git empujará a origin/master
.
En realidad, impulsará todos los cambios en las sucursales locales que tienen ramas remotas coincidentes en el origin
. Se controla mediante la configuración config push.default .
Ver también presionando RefSpecs en el libro de Pro Git .
Lo que está viendo es la barra lateral que representa todas las referencias de su repositorio remoto en el fork Experimental GitX del proyecto GitX .
HEAD
designará la rama predeterminada para ese control remoto.
Ver la página man de git remote set-head
:
No es necesario tener una bifurcación predeterminada para un control remoto, pero permite especificar el nombre del control remoto en lugar de una bifurcación específica.
Por ejemplo, si la rama predeterminada para elorigin
está configurada comomaster
, entonces elorigin
se puede especificar donde sea que normalmente se especifiqueorigin/master
.
master
es una referencia al final de una rama. Por convención (y por defecto) esta suele ser la rama de integración principal, pero no tiene que ser así.
HEAD
es en realidad un tipo especial de referencia que apunta a otra referencia. Puede señalar como master
o no (señalará la rama que esté actualmente desprotegida). Si sabes que quieres comprometerte con la rama master
, presiona para esto.
Aquí hay un ejemplo visual:
En su propio repositorio puede verificar hacia dónde apunta HEAD
ejecutando esto:
$ git symbolic-ref HEAD
refs/heads/master
Sin embargo, descubrir a qué apuntan los remotes/origin/HEAD
es más complicado porque está en la máquina remota.
Hay un gran pequeño tutorial sobre referencias git aquí:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1