o repositório com a maior quantidade de commits deve ser aquele que você extrai antes de tentar qualquer alteração.
git pull upstream master
Depois disso, certifique-se de que seu repositório do gitlab esteja sincronizado com o desenvolvedor.
git push origin master
Desta forma, ambos os repositórios são sincronizados enquanto você faz o seu trabalho, se você usar
git log
você deve ver algo como
commit 798a0433ad807b6127066cac3f6e33d6551ef0d4 (HEAD -> master, upstream/master, origin/master)
Isso significa que ambos os repositórios estão no mesmo commit.
depois de fazer o seu trabalho (melhor se você fizer isso em um ramo separado) você precisa confirmar essas mudanças. git commit --all -m "some text"
depois de fazer isso, você deve ver com git log
que sua nova ramificação está à frente de upstream
e origin
, se você quiser integrar as alterações em qualquer uma delas você deve usar git rebase
, isso fará fast-forward
no repo. Nós não usamos pull
porque ele derreteria todos os commits ao mesclá-los. Depois disso, presumo que você não tenha permissões de gravação em ambos os repos.
Use git fetch
para baixar as alterações de um dos repos, por exemplo, git fetch upstream master
e depois disso, veja as confirmações com git log
, em seguida, use git rebase
para mesclar as alterações de maneira segura.
Consulte o livro oficial do Git para mais informações, mas você deve estar bem depois de ler os 3 capítulos iniciais.
Espero que ajude