Como sincronizar com um repositório Git remoto?


92

Eu fiz um fork de um projeto no github, fiz algumas mudanças, até agora tudo bem.

Nesse ínterim, o repositório do qual fiz a bifurcação mudou e eu gostaria de colocar essas mudanças em meu repositório. Como faço isso ?

Respostas:


76

Geralmente git pullé o suficiente, mas não tenho certeza de qual layout você escolheu (ou o github escolheu para você).


4
git pull não funcionará a menos que você tenha configurado o remoto para buscar e o branch para fazer a fusão.
Abizern

Presumo que isso tenha sido feito durante a fase de "fabricação de um garfo". A menos que essa informação tenha sido descartada, ela ainda deve estar lá.
Šimon Tóth

usar git pull com https não funcionou, mas com http funcionou ... agora estou atualizado, obrigado!
George Profenza

@GeorgeProfenza Isso não é seguro. Considere o usossh
JVE999 de

65

Assumindo que suas atualizações estão no master e você está no branch no qual deseja mesclar as alterações.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Observe também que você desejará enviar a mesclagem de volta para sua cópia do repositório:

git push origin master

adicionar funcionou, puxar não :(, recebi um erro relacionado a https: erro: protocolo https não compatível ou desabilitado em libcurl ao acessar github.com/mrdoob/three.js.git/info/refs fatal: falha na solicitação HTTP Dicas?
George Profenza

Qual plataforma? Parece que uma das dependências do git não está completa.
Mark Hibberd

Como uma solução alternativa, você também pode usar o protocolo git em vez de https, por exemplo, git remote set-url git: //github.com/mrdoob/three.js.git - então tente o git pull.
Mark Hibberd

rodando em osx. Consegui obtê-lo usando git pull github.com/mrdoob/three.js.git master
George Profenza

3
erro de digitação nos comandos, eu acho, você começa com original, depois muda paraorigin
Benjol

46

Você deve adicionar o repo original como upstream.

Está tudo bem descrito aqui: https://help.github.com/articles/fork-a-repo

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master

5

Você precisa adicionar o repositório original (aquele que você bifurcou) como um remoto.

git remote add github (clone url para o repositório original)

Então você precisa trazer as mudanças para o seu repositório local

git fetch github

Agora você terá todos os branches do repositório original em seu repositório local. Por exemplo, o branch master será github/master. Com esses ramos, você pode fazer o que quiser. Una-os aos seus branches etc


1
Sugiro o nome upstreamdo controle remoto.
vidstige

@vidstige O que não é realmente descritivo o suficiente se você tiver vários controles remotos para um repositório. Por exemplo, frequentemente tenho um controle remoto no Github e um controle remoto no Dropbox.
Abizern de

bem, então é claro que faz sentido. É por isso que é ótimo ter a capacidade de nomeá-los você mesmo. Perceba que sua configuração é provavelmente menos comum do que ter um remoto chamado origin que é o seu próprio fork e então você tem o original, que geralmente é chamado de "upstream".
vidstige

-8

Para Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all

3
Isso é o oposto do que a OP estava procurando.
Ryan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.