¿Cómo puedo copyr el contenido de una sucursal a una nueva sucursal local?

He trabajado en una sucursal local y también he llevado los cambios a control remoto. Quiero revertir los cambios en esa twig y hacer algo más en ella, pero no quiero perder completamente el trabajo. Estaba pensando en crear una nueva twig localmente y copyr la vieja twig allí, luego puedo revertir los cambios y continuar trabajando en la twig anterior. ¿Hay una mejor manera tal vez? ¿O cómo hago esto?

 git checkout old_branch git branch new_branch 

Esto le dará una nueva twig "new_branch" con el mismo estado que "old_branch".

Este command se puede combinar con lo siguiente:

 git checkout -b new_branch old_branch 
 git branch copyOfMyBranch MyBranch 

Esto evita el acto potencialmente innecesario y que lleva mucho time de verificar una sucursal. Recuerde que un checkout modifica el "tree de trabajo", lo que podría llevar mucho time si es grande o si contiene files grandes (imágenes o videos, por ejemplo).

Con Git 2.15 (cuarto trimestre de 2017), " git branch " aprendió " -c/-C " para crear una nueva sucursal copyndo una existente.

Ver commit c8b2cec (18 de junio de 2017) por Ævar Arnfjörð Bjarmason ( avar ) .
Consulte commit 52d59cc , commit 5463caa (18 Jun 2017) por Sahil Dua ( sahildua2305 ) .
(Fusionado por Junio ​​C Hamano – gitster – in commit 3b48045 , 03 Oct 2017)

branch : agregue una --copy ( -c ) para ir con --move ( -m )

Agregue la capacidad de --copy una bifurcación y su reflog y configuration, esto utiliza la misma maquinaria subyacente que la --move ( -m ) excepto que el reflog y la configuration se copyn en lugar de moverse.

Esto es útil para, por ejemplo, copyr una twig de tema a una nueva versión, por ejemplo, work para work-2 después de enviar el tema de work a la list, conservando toda la información de seguimiento y otra configuration que acompaña a la twig, y ​​a diferencia de --move keeping la otra twig ya presentada alnetworkingedor como reference.

Nota: al copyr una twig, permanece en su twig actual.
Como Junio ​​C Hamano explica:

Al crear una nueva twig B al copyr la twig A que es la twig actual, también actualiza HEAD para apuntar a la nueva twig.
Probablemente fue hecho de esta manera porque " git branch -c AB " superpuso su implementación en " git branch -m AB ",

Esto no coincide con la expectativa habitual.
Si estuviera sentado en una silla azul, y alguien viniera y lo pintara de rojo, aceptaría terminar sentado en una silla que ahora está roja (también estoy de acuerdo en ponerme de pie, porque 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 ser despedido de la silla azul y terminar sentado en la nueva silla roja.