Manter repositório do Github forkado sincronizado com o original

Sincronizar repositórios do Github

Depois que você forka um projeto no Github, você faz as alterações necessárias e envia um Pull Request para o repositório original.

Se você precisa fazer mais alguma alteração no mesmo repositório no futuro, mas já tem outras colaborações no repositório original, como você procede para manter seu repositório atualizado? Copia as alterações manualmente para o seu repositório? Apaga e forka novamente? Chora?

O Git é uma ferramenta excepcional e, quando você passa a conhecê-lo mais a fundo, vai ver que não vai precisar fazer mais nada manualmente quando ele é usado no seu projeto. Existe uma forma muito prática de sincronizar os dois repos, e vou mostrá-la agora mesmo! Me acompanha? ;)

O seu repositório forkado normalmente é adicionado como origin quando você faz o clone. Para sincronizar com o repositório principal, adicione esse repositório com outro nome (no caso do exemplo, upstream), com o comando abaixo:

1
git remote add upstream [ENDEREÇO DO REPOSITÓRIO PRINCIPAL]

Substituindo [ENDEREÇO DO REPOSITÓRIO PRINCIPAL] pelo endereço do repositório (não diga :P)

Depois, para sincronizar os repositórios, execute o comando:

1
git fetch upstream

Finalmente, só dar merge na branch master:

1
git merge upstream/master

And done! ;)

Mais fácil que isso, só o drag’n drop do Visual Studio :P

Brincadeiras a parte: curtiu a dica? Já conhecia? Conhece outras formas de fazer a mesma coisa? Comente!

Link de referência: https://help.github.com/articles/syncing-a-fork

UPDATE: Havia esquecido de incluir o comando para dar merge na sua branch xD Com o fetch, o Git apenas sincroniza as branchs que existem no repositório selecionado. Obrigado Claudio Sanches e Gabriel Izaias :D