He usado fetch
seguido de checkout
...
git fetch <remote> <rbranch>:<lbranch>
git checkout <lbranch>
... ¿dónde <rbranch>
está la sucursal remota o la referencia de origen y <lbranch>
es la sucursal local o la referencia de destino que aún no existe que desea rastrear y que probablemente desee nombrar igual que la sucursal remota o la referencia de origen. Esto se explica en las opciones en la explicación de .<refspec>
Git es tan inteligente que completa automáticamente el primer comando si tabulo después de las primeras letras de la rama remota. Es decir, ni siquiera tengo que nombrar la sucursal local, Git copia automáticamente el nombre de la sucursal remota por mí. Gracias Git!
Además, como muestra la respuesta en esta publicación similar de Desbordamiento de pila , si no nombra la sucursal local fetch
, aún puede crearla cuando la extraiga utilizando la -b
bandera. Es decir, git fetch <remote> <branch>
seguido de git checkout -b <branch> <remote>/<branch>
hace exactamente lo mismo que mi respuesta inicial. Y, evidentemente, si su repositorio tiene solo un control remoto, puede hacerlo git checkout <branch>
después fetch
y creará una sucursal local para usted. Por ejemplo, acaba de clonar un repositorio y desea consultar ramas adicionales desde el control remoto.
Creo que parte de la documentación fetch
puede haber sido copiada literalmente pull
. En particular la sección <refspec>
de opciones es el mismo. Sin embargo, no creo que eso fetch
suceda nunca merge
, de modo que si deja vacío el lado de destino del colon, fetch
no debería hacer nada .
NOTA: git fetch <remote> <refspec>
es la abreviatura de lo git fetch <remote> <refspec>:
que, por lo tanto, no haría nada, pero git fetch <remote> <tag>
es lo mismo git fetch <remote> <tag>:<tag>
que debería copiar el control remoto <tag>
localmente.
Supongo que esto solo es útil si desea copiar una sucursal remota localmente, pero no necesariamente verificarla de inmediato. De lo contrario, ahora usaría la respuesta aceptada , que se explica en detalle en la primera sección de la descripción del pago y luego en la sección de opciones bajo la explicación de --track
, ya que es una línea. Bueno ... una especie de frase, porque aún tendrías que correr git fetch <remote>
primero.
FYI: El orden de <refspecs>
(fuente: destino) explica el extraño método pre Git 1.7 para eliminar ramas remotas . Es decir, no introduzca nada en la referencia de destino.