tipos tag remove qué practices existen etiquetas crear best git git-extensions

tag - qué tipos de etiquetas existen en git



¿Qué es una referencia de seguimiento? (4)

Cuando envío una nueva rama a un repositorio remoto a través de Git Extensions, recibo una alerta que dice:

The branch {branch name} does not have a tracking reference. Do you want to add a tracking reference for {branch name}?

¿Qué es una referencia de seguimiento? He encontrado solo algunas menciones de referencias de seguimiento en Google y ninguna definición real.


El excelente blog git ready de Nick Quaranto tiene una publicación que explica las sucursales de seguimiento remoto :

Las sucursales de seguimiento remoto tienen algunos propósitos diferentes:

  • Se utilizan para vincular lo que está trabajando localmente en comparación con lo que está en el control remoto.

  • Ellos sabrán automáticamente de qué rama remota obtendrán cambios cuando uses git pull o git fetch.

  • Aún mejor, el estado de git le reconocerá cuántas confirmaciones se encuentran frente a la versión remota de la rama.


La idea básica es que hay referencias puramente locales (por ejemplo, sucursales, etiquetas), y luego hay referencias de seguimiento remoto, que siguen lo que sucede en otros repositorios. Debido a que Git está descentralizado, es posible que elija un nombre para una rama que sea igual a la que se usa en un control remoto, sin haber conocido la otra, de manera que tengan un trabajo completamente diferente. Git te permite hacer esto, pero también proporciona una forma de vincular las referencias locales con las remotas.

Por ejemplo, considere lo siguiente:

% git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/maint remotes/origin/master remotes/origin/next remotes/origin/pu remotes/origin/todo

Aquí tenemos ramas en origin llamadas next y todo .

% git checkout -t remotes/origin/next Branch next set up to track remote branch next from origin. Switched to a new branch ''next'' % git branch todo

Ahora tenemos una rama local a next que rastrea la rama remota del mismo nombre y la todo local de la rama que no se actualizará con los cambios a los remotes/origin/todo .


Sí, es probable que desee agregarlo. haga esto en la consola: git branch --set-upstream-to origin / master


Una rama local de git puede rastrear una rama remota, lo que significa que los comandos de git push y git pull sabrán que los push y pull se comprometen desde y hacia la rama rastreada de forma predeterminada. Además, el estado de git indicará el estado entre su sucursal local actual y la sucursal remota que está rastreando. Cuando clona un repositorio git, git agregará una referencia de seguimiento a la rama maestra local para rastrear la rama maestra remota. Cuando realice el pago desde una nueva sucursal remota, git agregará una referencia de seguimiento a la sucursal local creada para rastrear la sucursal remota que verificó.

Sin embargo, si crea una nueva sucursal localmente y luego la empuja al repositorio remoto, debe indicar explícitamente a git si desea que su sucursal local comience a rastrear la nueva sucursal remota. --set-upstream opción -u o --set-upstream cuando se empuja la rama local al repositorio remoto: git push -u origin my-new-branch .

Puede verificar qué sucursales remotas están siguiendo sus sucursales locales (si las hay) con el comando git branch -vv A continuación se muestra un pequeño ejemplo de la salida.

b1 560eb64 Added file.txt b2 560eb64 [origin/b2] Added file.txt b3 b638c18 [origin/r1: ahead 1] Added file3.txt * master 560eb64 [origin/master] Added file.txt

En este caso tenemos sucursales locales master , b1 , b2 y b3 . La rama master está siguiendo una rama remota llamada master , la rama b1 no está siguiendo ninguna rama remota, la rama b2 está siguiendo una rama remota llamada b2 y la rama b3 está siguiendo una rama remota llamada r1 . git branch -vv también muestra el estado de la rama relacionada con la rama trazada. Aquí, la rama b3 está 1 comprometida por delante de la rama remota rastreada y las otras sucursales están actualizadas con sus respectivas ramas remotas rastreadas.

Entonces, si crea una sucursal local y la envía al repositorio remoto, ¿desearía agregar una referencia de seguimiento a la sucursal o no? Por lo general, cuando usted empuja una nueva sucursal local al repositorio remoto, lo hace para colaborar con otros desarrolladores en una característica. Si agrega una referencia de seguimiento a su sucursal local, puede convenientemente extraer los cambios que otras personas han realizado en la sucursal, por lo que diría que en la mayoría de los casos desea agregar la referencia de seguimiento.