Copie la sucursal remota a la sucursal local en Git

Ankit Raj Goyal 15 febrero 2024
  1. la última y mejor manera de copiar una sucursal remota a una sucursal local en Git - git switch -c
  2. el método antiguo para copiar una sucursal remota a una sucursal local en Git - git checkout
  3. Copie la sucursal remota a la sucursal local en Git con la opción --copy en el comando git branch
  4. Diferencia entre Git Copiar y Clonar
Copie la sucursal remota a la sucursal local en Git

Este tutorial demostrará cómo usar el nuevo comando git switch -c para copiar una rama remota a una rama local. Discutiremos dos formas más antiguas de hacer esto: la rama remota git checkout a local y la rama git con el indicador -c.

Solo copiamos los contenidos a una sucursal local, pero no creamos ninguna relación de seguimiento con el control remoto. El caso de uso aquí es crear una copia de seguridad o explorar los contenidos, pero no queremos fusionar los cambios en la rama remota.

la última y mejor manera de copiar una sucursal remota a una sucursal local en Git - git switch -c

Anteriormente, el comando git checkout estaba sobrecargado para múltiples propósitos. Se registra en una rama diferente y restaura los cambios de una confirmación.

Esto generó mucha confusión entre los desarrolladores.

Las versiones más recientes de Git (Git v2.23, Q3 2019 y posteriores) introdujeron un nuevo comando: git switch para ingresar a una rama diferente. Con su opción --create, podemos usarlo para crear una nueva rama si no existe antes de cambiar a ella.

Este es ahora el método mejor recomendado para copiar un control remoto a una sucursal local.

Configuramos un repositorio remoto con algunas ramas y las enumeramos con el comando git branch.

git branch -a

Configuración de sucursales múltiples de repositorio

En el repositorio remoto, se ve así:

Rama para copiar en remoto

Copiaremos la rama llamada another_branch a nuestro repositorio local.

Primero, buscaremos las sucursales remotas en nuestro repositorio local con el comando git fetch.

git fetch --all

Vemos que esto obtiene las ramas remotas.

Obtener sucursales remotas

Ahora creamos una copia de origin/another_branch con el comando git switch.

Pasamos un par de opciones: el indicador -c para crear la nueva rama de copia (no existe de antemano). También damos la opción --no-track porque solo queremos una copia de la rama y no un clon (más adelante en esta publicación).

git switch -c <new_branch> <old_branch> --no-track

Git Switch Nueva copia local

Este comando ha creado una nueva copia con el nombre nueva_copia_local y ha cambiado (marcado) en ella.

Cambiar sin relación de seguimiento

Si ahora enumeramos todas las ramas en nuestro repositorio local, la rama copiada, nueva_copia_local, no rastrea la rama que copiamos, otra_rama.

Lo mejor es usar el git switch remote branch para hacer una copia en nuestro repositorio local.

el método antiguo para copiar una sucursal remota a una sucursal local en Git - git checkout

git checkout era un comando que hacía muchas cosas en versiones antiguas de Git. Uno de ellos estaba cambiando a otra sucursal.

Git checkout remote branch to local era, por lo tanto, el antiguo método para hacer una copia local.

Primero nos registramos en la rama remota que queremos copiar. (Asegúrate de buscar las ramas primero).

git checkout <remote_branch>

A continuación creamos una nueva copia de esta rama con el comando git branch. Volvemos a pasar la opción --no-track porque no queremos crear ninguna relación de seguimiento entre las dos ramas.

git branch <new_branc> --no-track

Copia de Git con pago

Vemos a continuación que la rama recién creada no rastrea la antigua rama remota.

Copiar pago Sin relación de seguimiento

Entre esta forma antigua y el comando git switch recientemente introducido, el comando git branch aprendió la opción --copy para copiar una rama. Ahora veremos cómo copiar un control remoto en una nueva sucursal local con este método.

Copie la sucursal remota a la sucursal local en Git con la opción --copy en el comando git branch

Es un procedimiento de dos pasos.

Primero verificamos la sucursal remota con el comando git checkout. Tenga en cuenta la opción --no-track.

git checkout <old_branch> --no-track

A continuación, copiamos en una nueva rama pasando el indicador -c (para --copy) al comando git branch.

git branch -c <old_branch> <new_branch>

Copia de Git con comando de rama

Nuevamente, puede ver a continuación que la nueva copia no rastrea la rama anterior.

Copia de Git con rama sin relación de seguimiento

Diferencia entre Git Copiar y Clonar

Git copy no es lo mismo que Git clonar. Hay algunas diferencias sutiles.

  1. Cuando copia una rama, la nueva rama no rastrea la rama anterior. Significa que no hay conexión entre los dos: la nueva rama simplemente ha copiado el contenido de la rama anterior.

    Sin embargo, un clon rastrea la antigua rama. Esto significa que puede empujar, extraer, fusionar, reorganizar y usar estos comandos en su forma estándar sin pasar argumentos explícitos: la relación de seguimiento completa los nombres de las ramas automáticamente.

  2. En Git, la clonación está optimizada para la eficiencia. Por lo tanto, cuando clona, la nueva rama no obtiene los registros, configuraciones y ganchos de la rama anterior.

    Una copia también copia todo esto. Es vital en algunos casos, por ejemplo, cuando intentas recuperar confirmaciones perdidas con la ayuda de reflog.

  3. Una operación de copia de Git tiene algunos casos de uso típicos, más comúnmente, para crear una copia de seguridad de una sucursal remota. Otro caso de uso es cuando un desarrollador quiere descargar y explorar una rama de función remota interesante sin ninguna intención de enviar sus cambios a la base de código principal.