Q: GIT com multiplos remotes em um só projeto Tenho o projeto A que é meu projeto principal. Desse projeto nasceu o projeto B, por "fork".
Maravilha, então eu quero desenvolver coisas no projeto A e quero replica-las para o projeto B.
Quando eu desenvolvo coisas no projeto A e commito push e tudo beleza, depois vou para o projeto B que eu clonei e adicionei um novo remote para ele:
git remote add upstream url_projeto

Eu faço:
git merge upstream/master

Maravilha, vem as alterações, MAS algumas coisas não estão vindo. Não sei pq, por exemplo uma pasta com seus respectivos arquivos não vieram.
E também em contra partida, eu desenvolvi coisas no projeto B que não existem no pai dele "projeto A" e quando eu do um merge no projeto B com o projeto A ele vai e deleta algumas coisas mesmo que elas nunca tenham existido no projeto A.
Ficou claro será o problema?

A: Creio que não seja tão interessante trabalhar em dois dois projetos sobre 2 remotes. (E se eu compreendi o caso, o projeto A possui apenas 1 remote, enquanto o projeto B possui os dois). É possivel utilizar apenas 1 repositório com 2 remotes, mas exigirá certo cuidado.
Quando o codigo git remote add upstream url_projeto é executado, o git cria uma referencia interna para outro repositorio (Além do que já veio no clone), então é possivel ter "n" referencias. Exemplo:
Adicionando remote com referencia ao github:
git remote add github https://github.com/userx/repox.git
Adicionando remote com referencia ao bitbucket:
git remote add bitbucket https://usex@y.z:1234/repox/repo.git
Adicionando remote com referencia ao gitlab:
git remote add gitlab http://gitlab.com/usex/repox.git
Como pode ver, no exemplo citado eu criei 3 remotes para o mesmo projeto (github, bitbucket, gitlab), e portanto eu posso trabalhar com os 3 ao mesmo tempo.
Supondo que mais de uma pessoa tenha permissão apenas no github, enquanto outra que trabalha no gitlab precisa dessas modificações, mas você como intermediador do sistema precisa resolver a situação.
git fetch github master
git pull github
git push gitlab master
# Note que o remote sempre é especificado

Pronto, agora gitlab foi atualizado com o conteudo do github. Mas mesmo assim ainda é bem complicado de gerenciar essas alterações desta forma... Recomendo que tente trabalhar apenas com um remote, pois é possivel que ocorra muitos problemas, por exemplo conflitos em que apenas o administrador possa soluciona-los.
