Como posso ressincronizar um garfo do original

33

Eu apenas bifurquei um projeto no Github. Fiz modificações e enviei um pedido de pull. O proprietário fundiu meu fork com o projeto principal e depois disso ele fez algumas modificações. Então, por enquanto, meu fork não é atualizado com o projeto principal. Eu sinto falta das modificações que ele fez depois de fundir o meu pedido de puxar. Como posso atualizar meu fork com o projeto Main? Existe uma maneira de fazer isso na interface da web?

Obrigado

    
por bAN 01.08.2012 / 08:17

2 respostas

36

Por design, a criação de um projeto cria um repositório separado que não é atualizado quando o repositório original é alterado. No entanto, git facilita bastante a atualização manual.

Você precisa da ajuda de um terceiro repositório (sua cópia local é suficiente). Existem 3 repos:

  • "Upstream": o repositório do projeto upstream no Github.
  • "Origem": o repositório do seu garfo no Github
  • "Local": seu repositório local no seu computador. Eu suponho que você o criou clonando Fork usando git clone [email protected]:your-username/projectname.git e que todos estão usando branch master .

Supondo que atualmente "Origem" e "Local" estejam no mesmo estado, e "Upstream" está adiantado em 1 ou mais commits (a mesclagem e quaisquer alterações subseqüentes).

Primeiro adicione o projeto upstream como um Git remoto :

git remote add upstream https://github.com/upstream-username/projectname.git

Em seguida, pull (significando fetch e, em seguida, mesclando automaticamente) as alterações da ramificação master do controle remoto na ramificação atual ( master ) do repositório local:

git pull upstream master

Agora seu repositório local está em sincronia com upstream . Finalmente, empurre seu repositório local para o garfo do Github:

git push origin master

Agora tudo está em sincronia.

    
por 01.08.2012 / 10:37
1

Você precisa adicionar um controle remoto (consulte ajuda do GitHub ) e extrair esse novo controle remoto.

git remote add mainProject https://github.com/user/mainProject
git pull mainProject master
    
por 01.08.2012 / 09:28