Con Git 2.15 (Q4 2017), " git branch
" aprendió " -c/-C
" a crear una nueva sucursal copiando una existente.
Ver commit c8b2cec (18 de junio de 2017) por Ævar Arnfjörð Bjarmason ( avar
) .
Ver commit 52d59cc , commit 5463caa (18 de junio de 2017) por Sahil Dua ( sahildua2305
) .
(Fusionada por Junio C Hamano - gitster
- en commit 3b48045 , 03 oct 2017)
branch
: agrega una opción --copy
( -c
) para ir con --move
( -m
)
Agregue la capacidad a --copy
una rama y su reflog y configuración, esto usa la misma maquinaria subyacente que la opción --move
( -m
) excepto que el reflog y la configuración se copian en lugar de moverse.
Esto es útil para, por ejemplo, la copia de una rama puntual a una nueva versión, por ejemplo, work
para work-2
después de presentar el work
tema a la lista, mientras que preserva toda la información de seguimiento y otra configuración que va con la rama, y al contrario que --move
manteniendo la otra rama presentado ya-en torno a referencia.
Nota: al copiar una rama, permanece en su rama actual.
Como explica Junio C Hamano:
Al crear una nueva rama B
copiando la rama A
que resulta ser la rama actual, también se actualiza HEAD
para apuntar a la nueva rama.
Probablemente se hizo de esta manera porque " git branch -c A B
" superpuso su implementación en " git branch -m A B
",
Esto no coincide con la expectativa habitual.
Si estuviera sentado en una silla azul, y alguien viene y lo vuelve a pintar en rojo, aceptaría terminar sentado en una silla que ahora es roja (en cambio, también estoy de acuerdo, ya que ya no hay mi silla azul favorita )
Pero si alguien crea una nueva silla roja, modelándola después de la silla azul en la que estoy sentado, no espero que la arranquen de la silla azul y termine sentada en la nueva roja.
git branch -c A B
. Vea mi respuesta a continuación