Com o Git 2.15 (quarto trimestre de 2017), " git branch
" aprendi " -c/-C
" a criar uma nova ramificação copiando uma existente.
Veja commit c8b2cec (18 de junho de 2017) de Ævar Arnfjörð Bjarmason ( avar
) .
Consulte commit 52d59cc , commit 5463caa (18 de junho de 2017) por Sahil Dua ( sahildua2305
) .
(Mesclado por Junio C Hamano - gitster
- na confirmação 3b48045 , 03 de outubro de 2017)
branch
: adicione uma opção --copy
( -c
) para combinar com --move
( -m
)
Adicione a capacidade de --copy
uma ramificação e seu reflog e configuração; isso usa o mesmo mecanismo subjacente da opção --move
( -m
), exceto que o reflog e a configuração são copiados em vez de serem movidos.
Isto é útil para, por exemplo copiar um ramo tema para uma nova versão, por exemplo, work
para work-2
após a apresentação dowork
tema à lista, preservando todas as informações de rastreamento e outra configuração que se passa com o ramo, e ao contrário de --move
manter o outro ramo já apresentado em torno de referência.
Nota: ao copiar uma ramificação, você permanece em sua ramificação atual.
Como Junio C Hamano explica:
Ao criar uma nova ramificação B
, copiando a ramificação A
que passa a ser a ramificação atual, ela também é atualizada HEAD
para apontar para a nova ramificação.
Provavelmente foi feito dessa maneira porque " git branch -c A B
" pegou sua implementação em " git branch -m A B
",
Isso não corresponde à expectativa usual.
Se eu estivesse sentado em uma cadeira azul e alguém a repusesse em vermelho, eu aceitaria acabar sentado em uma cadeira que agora está vermelha (também estou bem em ficar em pé, pois não existe mais minha cadeira azul favorita )
Mas se alguém criar uma nova cadeira vermelha, modelando-a após a cadeira azul em que estou sentado, não espero ser arrancado da cadeira azul e acabar sentado na nova cadeira vermelha.
git branch -c A B
. Veja minha resposta abaixo