2011-09-24 7 views

Respuesta

23

Son dos nombres simbólicos diferentes que pueden señalar cosas diferentes. refs/heads/master es una rama en su copia de trabajo llamada master. Con frecuencia, se trata de una rama de seguimiento de refs/remotes/origin/master porque origin es el nombre predeterminado para el control remoto creado por git clone y su rama principal generalmente también se llama master.

Puede ver la diferencia entre ellos con git rev-list refs/heads/master..refs/remotes/origin/master, que estará vacío si son iguales y enumerará las confirmaciones entre ellos.

18

La diferencia clave para entender es que las ramas bajo refs/heads/ son ramas que, cuando tiene una desprotegida, puede avanzar creando nuevas confirmaciones. Los cuales son menores refs/remotes/, sin embargo, son los llamados "ramas de seguimiento a distancia" - estas referencias, simplemente, apuntar a la confirmación de que un repositorio remoto estaba en la última vez que hizo un git fetch <name-of-remote>, o una exitosa git push a la rama correspondiente en ese repositorio remoto . (Escribí un blog que habla de esta diferencia con cierta extensión here.)

Cuestiones relacionadas