Extraño contenido de .git / HEAD

Acabo de clonar un repository que contiene un set de twigs diferentes. Cuando git branch da:

$ git branch

 * rel/next/master 

El contenido de .git / HEAD en el repository clonado local es:

 * rel/next/master 

Normalmente, cuando clono un repository, siempre está en refs / heads / master como la twig pnetworkingeterminada. ¿Significa lo anterior que alguien en algún momento cambió manualmente el valor de HEAD remoto? ¿O Git calcula automáticamente el HEAD pnetworkingeterminado / remoto basándose en los nombres de las twigs de alguna manera?

He leído esto:

¿Cómo se establece origen / HEAD?

Y he tratado de ver si era necesario "podar" las cabezas ambiguas, pero ese no es el caso aquí.

Creo que podría cambiar el contenido de HEAD en el repository remoto de git. Pero me gustaría saber cómo es posible que tenga este valor primero

Editar: No estoy seguro de haber respondido la pregunta prevista (después de haber seguido el enlace a la otra pregunta desde entonces). Si se está preguntando: ¿cómo se cambió el HEAD del repository remoto para identificar algo inusual (si es que lo hizo), la respuesta depende de quién utiliza el repository remoto y cómo. Si el repository remoto se usa para operaciones de git checkout (por ejemplo, para implementar cosas incluso desde un repository simple), la input HEAD se puede actualizar mediante un pago y envío.


Cuando haces un git clone inicial, especificas una twig con -b , y git la comtesting.

Si no especifica una twig con -b (la mayoría de las personas no), git todavía elige algo para verificar. Lo que elige echar un vistazo, es un poco complicado.

Después de que hayas clonado, puedes ejecutar git ls-remote origin . Verás algo como esto:

 6c4ab27f2378ce67940b4496365043119d7ffff2 HEAD 32f56600bb6ac6fc57183e79d2c1515dfa56672f refs/heads/maint 6c4ab27f2378ce67940b4496365043119d7ffff2 refs/heads/master 9eef2c89753895da807c936ff1ba3a255c8370c9 refs/heads/next 0c53c9308fc7349ea93fd96ce7bbff7a8d0dfa41 refs/heads/pu 3d84dcf9136e737c8a8d10b7954928df732dadca refs/heads/todo 

(Esto es de ejecutar git ls-remote en el mismo repository de git ahora mismo). Tenga en count que hay un SHA-1 sin formatting listdo para HEAD , no la reference simbólica, aunque HEAD en el control remoto es casi seguro una reference simbólica (específicamente a refs/heads/master ).

Su git local compara el SHA-1 aquí con los SHA-1 para todos los refs/heads/ (branches). Si coincide exactamente con uno, como es el caso aquí, asume que desea verificar una sucursal local que rastrea la sucursal remota correspondiente.

Si hay más de un SHA-1 coincidentes, git solo elige uno de ellos.

Si ninguno coincide, no estoy realmente seguro de lo que hace.

Si está en github, hay un campo en la página de "configuraciones" de un repository para cambiar la twig pnetworkingeterminada a la que desee.

Si se trata de un repository estándar que la gente generalmente clona, ​​puede usar git symbolic-ref para actualizar HEAD y señalar cualquier reference que desee y esa será la twig pnetworkingeterminada que las personas obtendrán cuando clonen el repository.