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 --copyuma 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, workpara work-2apó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 --movemanter 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 Aque passa a ser a ramificação atual, ela também é atualizada HEADpara 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