¿Cómo puedo copiar el contenido de una rama a una nueva rama local?
He trabajado en una rama local y también he empujado los cambios a remoto. Quiero revertir los cambios en esa rama y hacer algo más en ella, pero no quiero perder el trabajo por completo. Estaba pensando en algo como crear una nueva rama localmente y copiar la rama antigua allí, entonces puedo revertir los cambios y continuar trabajando en la rama antigua. ¿Hay una mejor manera tal vez? ¿O cómo hago esto?
3 answers
git checkout old_branch
git branch new_branch
Esto le dará una nueva rama "new_branch" con el mismo estado que "old_branch".
Este comando se puede combinar con lo siguiente:
git checkout -b new_branch old_branch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-21 10:00:35
git branch copyOfMyBranch MyBranch
Esto evita el acto potencialmente lento e innecesario de revisar una rama. Recuerde que un checkout modifica el "árbol de trabajo", lo que podría llevar mucho tiempo si es grande o contiene archivos grandes (imágenes o videos, por ejemplo).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-12 22:18:34
Con Git 2.15 (Q4 2017), "git branch
" aprendió " -c/-C
" a crear una nueva rama copiando una existente.
Véase commit c8b2cec (18 de junio de 2017) por Ævar Arnfjörð Bjarmason (avar
).
Véase commit 52d59cc, commit 5463caa (18 Jun 2017) by Sahil Dua (sahildua2305
).
(Merged by Junio C Hamano -- gitster
-- in commit 3b48045 , 03 Oct 2017)
branch
: añádase un--copy
(-c
) opción a ir con--move
(-m
)Añadir la capacidad de
--copy
una rama y su reflog y configuración, esto utiliza la misma maquinaria subyacente que el--move
(-m
) opción excepto que el reflog y la configuración se copian en lugar de ser movidos.Esto es útil para, por ejemplo, copiar una rama temática a una nueva versión, por ejemplo,
work
awork-2
después de presentar el temawork
a la lista, mientras preservar toda la información de seguimiento y otra configuración que va con la sucursal, y a diferencia de--move
mantener el otro ya presentado branch alrededor para la referencia.
Nota: al copiar una rama, usted permanece en su rama actual.
Como explica Junio C Hamano:
Al crear una nueva rama
B
copiando la ramaA
que sucede a ser la rama actual, también se actualizaHEAD
para apuntar a la nueva Sucursal.
Probablemente se hizo de esta manera porque "git branch -c A B
" piggybacked 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 la vuelve a pintar en rojo, aceptaría terminar sentado en una silla que ahora es roja (también estoy bien para de pie, en su lugar, ya que ya no es mi silla azul favorito).Pero si alguien crea una nueva silla roja, modelándola después de la azul silla en la que estoy sentado, no espero ser arrancado de la nada y terminar sentado en el nuevo rojo una.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-14 23:12:42