Estou tentando mover apenas o conteúdo de um repositório ( repo1
) para outro repositório existente ( repo2
) usando os seguintes comandos:
git clone repo1
git clone repo2
cd repo1
git remote rm origin
git remote add repo1
git push
Mas não está funcionando. Analisei um post semelhante, mas só encontrei um movendo a pasta, não o conteúdo.
git
merge
repository
migrate
Mario
fonte
fonte
Respostas:
Eu acho que os comandos que você está procurando são:
Depois disso
repo2/master
, conterá tudo derepo2/master
erepo1/master
, e também terá a história de ambos.fonte
repo1
uma subpasta (dentrorepo1
) antes de fazer a mesclagem.Perfeitamente descrito aqui https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Primeiro, precisamos buscar todas as ramificações e tags remotas do repositório existente no nosso índice local:
Podemos verificar se há ramos ausentes que precisamos para criar uma cópia local de:
Vamos usar o URL clonado por SSH do nosso novo repositório para criar um novo controle remoto em nosso repositório local existente:
Agora estamos prontos para enviar todas as ramificações e tags locais para o novo controle remoto chamado new-origin:
Vamos tornar a nova origem o controle remoto padrão:
Renomeie nova origem para apenas origem, para que se torne o controle remoto padrão:
fonte
git checkout BranchName
então ramo push to repo remoto novamente comgit push --all new-origin
mas muito obrigadoSe você deseja preservar as ramificações existentes e confirmar o histórico, aqui está uma maneira que funcionou para mim.
Agora, suponha que você queira manter os repositórios de origem e destino em sincronia por um período de tempo. Por exemplo, ainda há atividades no repo remoto remoto atual que você deseja trazer para o novo repo / substituição.
Para baixar as atualizações mais recentes (supondo que você não tenha alterações locais):
NB: Ainda tenho que usar submódulos, então não sei quais etapas adicionais podem ser necessárias se você as possuir.
fonte
Abordagem mais simples se o código já for rastreado pelo Git, defina um novo repositório como sua "origem" para a qual pressionar.
fonte
Isso funcionou para mover meu repositório local (incluindo histórico) para meu repositório remoto do github.com. Depois de criar o novo repositório vazio no GitHub.com, uso o URL na etapa três abaixo e funciona muito bem.
Encontrei isso em: https://gist.github.com/niksumeiko/8972566
fonte
Usei o método abaixo para migrar meu GIT Stash para o GitLab mantendo todas as ramificações e confirmar o histórico.
Clone o repositório antigo para local.
Crie um repositório vazio no GitLab.
fonte
Parece que você está perto. Supondo que não seja apenas um erro de digitação no seu envio, a etapa 3 deve ser em
cd repo2
vez de repo1. E o passo 6git pull
não deve ser pressionado. Lista reformulada:fonte
De acordo com a resposta de Dan-Cohn, Mirror-push é seu amigo aqui. Este é o meu acesso para migrar repositórios:
Espelhando um Repositório
Abra o Git Bash.
2. Crie um clone simples do repositório.
3.Pressione o espelho para o novo repositório.
4. Remova o repositório local temporário que você criou na etapa 1.
Referência e crédito: https://help.github.com/en/articles/duplicating-a-repository
fonte
Há muitas respostas complicadas aqui; no entanto, se você não estiver preocupado com a preservação de ramificação, tudo o que você precisa fazer é redefinir a origem remota, definir a origem e pressionar.
Isso funcionou para preservar todo o histórico de submissões para mim.
fonte