Após termos clonado um projeto para nossa conta do Github ou GitLab o nosso projeto pode ficar desatualizado em relação ao projeto original.
Isso pode causar dois problemas na realização de pull requests pois a sua branch não vai estar igual a banch de destido no PR.
O outro problema é conseguir atualizar o seu projeto de novas atualizações ou correções no projeto.
Para isso precisamos configurar em nosso local o endereço remoto do projeto original como upstream nas configurações do .git/config
na pasta do projeto.
Utilizamos o seguinte comando:
git remote add upstream https://github.com/usuario/projeto.git
Com isso nosso .git/config
ficará da seguinte forma:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:<seu usuario>/projeto.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "upstream"]
url = https://github.com/<usuario original>/projeto.git
fetch = +refs/heads/*:refs/remotes/upstream/*
O proximo passo é atualizar nosso local com as informações do repositório original. Para isso podemos rodar o seguinte comando:
git fetch upstream
Certifique-se de que você está no branch master:
git checkout master
Reescreva o seu branch master, de forma que os seus commits que não estão no projeto original apareçam, e que os seus commits fiquem no topo da lista:
git rebase upstream/master
Caso o seu projeto não contenha commit adicinais, ou não queira mantelos e sim atulizar sua master com o projeto original pode utilizar o seguinte comando:
git reset --hard upstream/master
Se você não quiser reescrever o histórico do seu branch master (talvez porque alguém já o tenha clonado) então você deve substituir o último comando por um
git merge upstream/master
Por fim pode atulizar seu repositório remoto com as alterações
git push origin master