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.