tutorial español descargar and actual git version-control github

español - git version actual



¿Por qué se muestra "origin/HEAD" cuando se ejecuta "git branch-r"? (7)

Tenía la impresión de que los repos remotos dedicados (como GitHub, donde nadie se infiltraría y trabajaría en ese código, sino solo tirar o empujar, etc.) no tenían ni debían tener un HEAD porque, básicamente, no funcionaba dupdo. ¿No tan?

Tuve la misma impresión exacta como dijiste.

E incluso no puedo eliminar ese origen / HEAD rama de seguimiento remoto clonado de github haciendo

git branch -d -r origin/HEAD

Esto no tuvo efecto.

¿Puede alguien decirme cómo puedo eliminar esa rama de seguimiento remoto de origen / HEAD?

actualizar

Aunque no encontré por qué hay un origen / HEAD creado al clonar desde github, encuentro una forma de eliminarlo.

La nueva versión de git proporciona

git remote set-head <name> -d

para eliminar el puntero HEAD inútil de la rama de seguimiento remoto.

Y también podemos cambiar el nombre predeterminado tonto ''origen'' a lo que queramos mediante el uso de

git remote rename origin <new_name>

Espero que esto pueda ayudar. :)

Cuando ejecuta git branch -r why the blazes, ¿indica el origin/HEAD ? Por ejemplo, hay un repositorio remoto en GitHub, por ejemplo, con dos ramas: master y awesome-feature. Si hago git clone para tomarlo y luego ir a mi nuevo directorio y enumerar las ramas, veo esto:

$ git branch -r origin/HEAD origin/master origin/awesome-feature

O en cualquier orden en que esté (alfa? Estoy falsificando este ejemplo para mantener en secreto la identidad de un repo inocente). Entonces, ¿cuál es el negocio de HEAD ? ¿Es lo que push a la última persona a push su HEAD cuando presionaron? ¿No será eso lo que sea que hayan push ? HEAD mueve ... ¿Por qué me importa lo que alguien señaló en HEAD en otra máquina?

Solo estoy manejando el seguimiento remoto y tal, así que esta es una confusión persistente. ¡Gracias!

EDITAR: tenía la impresión de que los repos remotos dedicados (como GitHub, donde nadie se infiltraría y trabajaría en ese código, sino solo tirar o empujar, etc.) no tenían ni debían tener un HEAD porque, básicamente, sin copia de trabajo. ¿No tan?


La razón por la cual un repositorio simple puede tener un HEAD, es porque determina qué rama se verifica inicialmente después de un clon del repositorio.

Normalmente, HEAD apunta a maestro, y esa es la rama que se desprotege cuando las personas clonan el repositorio. Al establecerlo en otra rama (editando HEAD en el repositorio desnudo), se da salida a dicha rama en clonar.


Si "origen" es un repositorio remoto, entonces origin / HEAD identifica la rama predeterminada en ese repositorio remoto.

Ejemplo:

$ git remote show origin $ git remote show origin * remote origin Fetch URL: [email protected]:walkerh/pipe-o-matic.git Push URL: [email protected]:walkerh/pipe-o-matic.git HEAD branch: master Remote branch: master tracked Local branch configured for ''git pull'': master merges with remote master Local ref configured for ''git push'': master pushes to master (fast-forwardable)

Tenga en cuenta la línea que dice "HEAD branch: master". Aquí es donde el repositorio remoto les permite a los clientes saber qué rama se va a finalizar de forma predeterminada.


Siempre hay un HEAD que apunta a la rama actualmente desprotegida en el repositorio remoto (que puede o no ser maestro). Incluso los repositorios remotos tienen sucursales actuales. Por lo general, es maestro, y fuera de mi cabeza no puedo pensar en ninguna razón por la que uno quiera cambiarlo, pero se puede cambiar.


Supongo que alguien empujó una rama y la llamó HEAD:

git push origin HEAD


Tiene razón en que presionar a los repos remotos dedicados funciona mucho mejor cuando están ''desnudos'', es decir, cuando no tienen directorios de trabajo. La arquitectura de Git está diseñada para actualizarse mediante parches o pull ( fetch ), lo que tiene sentido en un VCS distribuido. Como dicen los doctores en algún lugar, presionar una rama que está actualmente desprotegida puede dar como resultado "resultados inesperados" .

HEAD es parte de los requisitos para un repositorio válido. El diseño de Git Repository dice, en parte:

HEAD A symref (see glossary) to the refs/heads/ namespace describing the currently active branch. It does not mean much if the repository is not associated with any working tree (i.e. a bare repository), but a valid git repository must have the HEAD file; some porcelains may use it to guess the designated "default" branch of the repository (usually master). It is legal if the named branch name does not (yet) exist.

Entonces verás HEAD como parte de la lista de sucursales, incluso si "no significa mucho ..."


@robinst es correcto.

En git, puede seleccionar qué rama está desprotegida por defecto (es decir, cuando clona). Por defecto, origin/HEAD apuntará a eso.

En GitHub, puedes cambiar esto en la configuración de administración de tu repositorio de GitHub. También puedes hacerlo desde la línea de comandos a través de

git remote set-head origin trunk

o eliminarlo por completo a través de

git remote set-head origin -d

Example . Mire el menú desplegable ''Cambiar sucursales''. trunk está marcado, por lo que origin/HEAD sigue al trunk .