Eu tenho ramos principais e novos projetos . E agora eu gostaria de criar um novo repositório com seu mestre, baseado no ramo do novo projeto.
Antecedentes: Eu tenho um repositório que contém três aplicativos independentes. Não começou assim. Originalmente, havia apenas um aplicativo no repositório. Com o tempo, no entanto, as necessidades comerciais mudaram. Um aplicativo se tornou dois (uma versão herdada e uma reescrita.) Um serviço da web foi adicionado. Ramos separados foram usados para conter os três projetos. No entanto, eles não compartilham nenhum código. E, portanto, seria mais simples tê-los divididos em seus próprios repositórios.
--follow-tags
para isso.push
para um local (ou seja,git init
em vez de Github> New> ...)Atualizar:
cd ao repositório local contendo old_branch e:
fonte
Editar: No GitHub, você pode "dividir" o repositório e, em seguida, ir para a guia Admin no seu clone. Abaixo de "Nome do repositório" e "Visibilidade" está "Ramificação padrão", com um menu suspenso de ramificações. Escolha
new-project
.Re-editar: Acabei de perceber que é o
master
ramo que você deseja definir, não apenas o ramo "padrão". Assim…them/repo
parayou/repo
.git clone [email protected]:you/repo.git
gitk
.old-master
ramificação para não perder o controle das confirmações antigas.]new-project
ramificação, clique com o botão direito na mensagem de confirmação e selecione "Redefinir ramificação principal para aqui". (Você também pode fazer isso na linha de comando usandogit-reset
, mas ainda não descobri a invocação correta.)Seu próximo envio ao repositório do GitHub precisará ser feito com a
--force
opção, mas, caso contrário, você estará pronto.Se é um dos seus próprios repositórios, você está fazendo isso para…
git clone [email protected]:you/orig.git
git clone orig copy
copy
repositório local , redefina amaster
ramificação para onde você deseja.you/copy
. Siga as instruções no GitHub para configurar esse projeto como um controle remoto para sua versão local decopy
, pushmaster
, e pronto!fonte
E isso é tudo. (Nota: histórico do git preservado)
Eu tentei a resposta acima e achei que ela não era específica o suficiente, pois não especificou + master: master, que é o que eu precisava para fazê-lo funcionar. Isso funciona muito bem.
Fonte (com minhas modificações para evitar problemas ssh com o github): Mauricio Aiello, ex-desenvolvedor sênior de Java, https://www.quora.com/How-do-I-create-a-new-GitHub-repository-from-a -branch-in-existente-repository
fonte
Não tenho certeza se essa é uma boa maneira, mas é fácil de qualquer maneira:
Em seguida, crie um novo repositório no github e empurre-o.
fonte
Lembre-se de que, quando você simplesmente cria um novo repositório, perde a referência ao antigo e torna mais difícil manter qualquer atualização no projeto original sincronizada com o novo. Talvez não seja melhor dividir o repo?
fonte
Pouco acréscimo à resposta correta:
$ git push [email protected]: accountname / new_repo + old_branch: master
"[email protected]: accountname / new_repo" => obtenha no menu suspenso "Clone ou faça o download" do github
fonte