Digamos que eu tenho um repositório no git.fedorahosted.org e quero clonar isso na minha conta no github para ter meu próprio playground, além do repositório mais "oficial" do fedorahosted. Quais seriam as etapas para copiar inicialmente isso? Dentro do github, há esse belo botão "fork", mas não posso usá-lo por razões óbvias.
E como eu acompanharia as mudanças no repositório do fedorahosted no repositório do github?
origin
aponta para o local remoto canônico. Nesse caso, a localização do github provavelmente seria a canônica.git remote add
. Você pode enviar para um deles informando explicitamente o controle remotogit push
. Por exemplo,git push foobar master
para enviar a ramificação atual para omaster
controle remotofoobar
.Há uma resposta excluída para esta pergunta que possui um link útil: https://help.github.com/articles/duplicating-a-repository
A essência é
Exemplo do OP:
Na sua máquina local
fonte
error: failed to push some refs to 'https://github.com/username/testrep.git'
Para empurrar seu repo existente para diferente, você precisa:
Clone o repositório original primeiro.
Envie as fontes clonadas para o seu novo repositório:
Você pode mudar
master:master
parasource:destination
ramo.Se você deseja enviar por commit específico (ramificação), faça:
No repo original, crie e efetue o check-out de uma nova ramificação:
Escolha e redefina para o ponto em que deseja iniciar:
Como alternativa, selecione o commit por
git cherry-pick
para anexar ao HEAD existente.Em seguida, avance para seu novo repositório:
Se você estiver refazendo, use o
-f
force push (não recomendado). Corragit reflog
para ver o histórico de alterações.fonte
git push ... old_branch_name:new_branch_name
permite enviar uma ramificação de recurso do repositório antigo como a ramificação principal no novo repositório. Útil!Deseja simplesmente enviar o repositório local (com suas ramificações locais, etc.) para o novo controle remoto ou realmente deseja espelhar o controle remoto antigo (com todas as suas ramificações, tags, etc.) no novo controle remoto? Se o último, aqui está um ótimo blog sobre Como espelhar adequadamente um repositório git .
É altamente recomendável que você leia o blog para obter alguns detalhes muito importantes, mas a versão curta é a seguinte:
Em um novo diretório, execute estes comandos:
fonte
Tente isso Como mover um repositório Git completo
Crie um repositório local no diretório temp-dir usando:
git clone temp-dir
Vá para o diretório temp-dir.
Para ver uma lista dos diferentes ramos no ORI, faça:
Faça o check-out de todos os ramos que você deseja copiar do ORI para o NEW usando:
Agora, busque todas as tags do ORI usando:
Antes de executar a próxima etapa, verifique suas tags e ramificações locais usando os seguintes comandos:
Agora limpe o link para o repositório ORI com o seguinte comando:
Agora vincule seu repositório local ao seu NOVO repositório recém-criado usando o seguinte comando:
Agora empurre todas as suas ramificações e tags com estes comandos:
Agora você tem uma cópia completa do seu repositório ORI.
fonte
Encontrei uma solução usando set-url que é concisa e bastante fácil de entender :
cd
no repositório existente em sua máquina local (se você ainda não o clonou, faça isso primeiro)git remote set-url origin https://github.com/user/example.git
git push -u origin master
fonte
Se você possui um repositório Git existente:
fonte
Basta apontar o novo repositório alterando o URL do repositório GIT com este comando:
Exemplo:
git remote set-url origin [email protected]:Batman/batmanRepoName.git
Agora, empurrar e puxar estão vinculados ao novo REPO.
Em seguida, empurre normalmente da seguinte maneira:
fonte
Eu tive o mesmo problema.
No meu caso, como eu tenho o repositório original na minha máquina local, fiz uma cópia em uma nova pasta sem nenhum arquivo oculto (.git, .gitignore).
Finalmente, adicionei o arquivo .gitignore à nova pasta criada.
Depois, criei e adicionei o novo repositório a partir do caminho local (no meu caso, usando o GitHub Desktop).
fonte
Aqui está uma maneira manual de fazer
git remote set-url origin [new repo URL]
:git clone <old remote>
Aberto
<repository>/.git/config
e mude o controle remoto (a opção url)
Envie o repositório para o GitHub:
git push
Você também pode usar os dois / vários controles remotos .
fonte