Eu tenho um servidor que estou desativando. A única coisa que resta para migrar é o meu repositório. Este servidor está listado como a origem (mestre) de um dos meus projetos. Qual é a maneira correta de mover o repositório para manter o histórico.
264
Respostas:
Para adicionar o novo local de repo,
Em seguida, empurre o conteúdo para o novo local
Por fim, remova o antigo
Depois disso, você pode fazer o que o bdonlan disse e editar o arquivo.git / config para alterar o new_repo_name para origem. Se você não remover a origem (repositório remoto original), basta enviar as alterações para o novo repositório com
fonte
git push -u new_repo_name --all
.git remote rename new_repo_name origin
Se você deseja migrar todas as ramificações e tags, use os seguintes comandos:
clonar o repositório antigo com todos os ramos
configurar um novo controle remoto
empurrar todas as refs sob refs / heads (que provavelmente é o que você deseja)
fonte
--tags
erefs/heads/*:refs/heads/*
não é compatível--mirror
. stackoverflow.com/a/26552740/1484831 funcionou bem.refs/heads/refs/heads
usandogit push -f --tags remoteName refs/heads/*:refs/heads/*
para que eu tenha trocado paragit push remoteName --mirror
push
também suporta--mirror
.git clone --mirror; cd repo; git push --mirror new_remote
deve fazer o truqueIsso funcionou para mim na perfeição .
Devo mencionar, no entanto, que isso cria um espelho do seu repo atual e o envia para o novo local. Portanto, isso pode levar algum tempo para repositórios grandes ou conexões lentas .
fonte
git push --mirror origin
mais-f
.Copie-o. É realmente assim tão simples. :)
No lado do cliente, basta editar .git / config no repositório local do cliente para apontar seus controles remotos para o novo URL, conforme necessário.
fonte
Isso é feito parcialmente em algumas das outras respostas.
fonte
--mirror
no impulso é muito importante: esta deve ser a resposta corretagit init --bare
Estou apenas reposicionando o que os outros disseram, em uma lista simples de seguir as instruções.
Mova o repositório: Simplesmente faça login no novo servidor,
cd
no diretório pai onde você deseja manter o repositório e usersync
para copiar do servidor antigo:Faça com que os clientes aponte para o novo repositório: Agora, em cada cliente usando o repositório, basta remover o ponteiro para a origem antiga e adicionar um ao novo.
fonte
git remote set-url origin [email protected]:path/to/repository.git
Dê uma olhada nesta receita no GitHub: https://help.github.com/articles/importing-an-external-git-repository
Eu tentei vários métodos antes de descobrir
git push --mirror
.Trabalhou como um encanto!
fonte
git clone --mirror ...
,git remote add ...
,git push --mirror ...
Eu segui as instruções no BitBucket para mover um repositório com todos os seus ramos lá. Aqui estão as etapas com explicações após o
#
personagem:Funcionou bem para mim.
fonte
Por favor, siga os passos:
fonte
Esta é uma variação desta resposta , atualmente sugerida pelo gitlab para "migrar" um repositório git de um servidor para outro.
Vamos supor que seu projeto antigo seja chamado
existing_repo
, armazenado em umaexisting_repo
pasta.Crie um repositório em seu novo servidor. Vamos assumir que o URL desse novo projeto é
git@newserver:newproject.git
Abra uma interface da linha de comandos e digite o seguinte:
Os benefícios dessa abordagem são que você não exclui a filial que corresponde ao seu servidor antigo.
fonte
Você pode usar o seguinte comando:
Exemplo de http://gitref.org/remotes/
fonte
Deve ser tão simples quanto:
Dessa forma, você mantém o nome
origin
do seu novo repositório - e depois envia para o novo repositório o antigo, conforme detalhado nas outras respostas. Supondo que você trabalhe sozinho e tenha um repositório local que deseja espelhar com todo o seu dinheiro, você também deve (de dentro do repositório local)mas consulte "Git push --mirror" é suficiente para fazer backup do meu repositório? (em todos, não use
--mirror
apenas uma vez).fonte
siga estas instruções Se você deseja manter todos os commits e branches do antigo para o novo repositório
fonte
Você pode usar o git-copy para duplicar o repositório com todos os históricos.
fonte
Se você deseja mover de uma origem para outra e também manter um backup da sua origem atual em sua máquina local, siga estas etapas:
Agora na pasta faça
O comando acima fornece o URL de origem remota atual, útil para definir a origem de volta na última etapa
O comando acima define a origem remota para o novo local
O comando acima envia o ramo local ativo atual para remoto com o desenvolvimento do nome da filial. É claro que preserva toda a história, pois com o git toda a história também é empurrada.
O comando acima recupera a origem remota para a sua origem atual: você deseja isso porque está na pasta existente e provavelmente não deseja misturar o nome atual da pasta local com a nova pasta que você criará para clonar o repositório você acabou de empurrar para.
Espero que isto ajude,
fonte
Se você deseja migrar um repositório #git de um servidor para um novo, faça o seguinte:
Todas as ramificações e tags remotas do repositório antigo serão copiadas para o novo repositório.
Executando este comando sozinho:
copiava apenas uma ramificação principal (apenas ramificações de rastreamento) para o novo repositório.
fonte