Eu planejo uma reescrita completa do meu projeto, usando outra estrutura etc. Seria bom manter o código antigo, incluindo o histórico para referência. Qual é a melhor maneira de fazer isso, a fim de evitar riscos, confusão e surpresas?
Minha idéia é criar uma nova ramificação, substituir lá tudo e obter uma versão "nova" básica em execução, marcar o último mestre "antigo" e mesclar a ramificação ao mestre. Isso soa razoável?
Respostas:
Eu voto por manter tudo em um único repositório.
Eu gostaria:
É assim:
Além disso: você também pode criar uma tag do antigo código legado, se souber que nunca desejará adicionar nenhum commit a ele.
Quando você deve criar um novo repositório em vez de fazer isso:
fonte
A menos que haja uma razão premente para mesclar as ramificações reescritas e históricas, eu as manteria separadas. Crie uma nova ramificação para manter o código antigo, reescreva-o no mestre e mantenha-os separados dessa maneira. Dessa forma, você sempre pode trabalhar com a estrutura / implementação antiga se a situação mudar.
fonte
É para isso que servem os galhos órfãos.
Pode ser necessário definir
new_branch
temporariamente o ramo padrão como no Github, pois ele exibe o mestre por padrão.fonte
Você pode criar uma nova ramificação no projeto atual, mas pode ser melhor marcar o repositório como privado, em seguida, criar um novo para o seu novo código, assim você ainda possui o repositório antigo, mas não há inchaço no trabalho obsoleto.
Sugiro que você adote essa abordagem em vez de tentar mesclar novamente o ramo para dominar não apenas porque você ainda terá esse inchaço do código obsoleto, mas também porque pode haver vários conflitos frustrantes de mesclagem quando você estiver pronto para faça o puxão. Para evitar isso, seria melhor começar com um ramo claro, em vez de fundir dois completamente diferentes.
fonte