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 ?

George Profenza
fonte

Respostas:

76

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

Šimon Tóth
fonte
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
Mark Hibberd
fonte
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
Alex
fonte
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

Abizern
fonte
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
Convidado
fonte
3
Isso é o oposto do que a OP estava procurando.
Ryan