Guia prá¡tico: contribuindo com projetos do MoIP no Github – Remotes, fetches, pull requests e issues
por Herberth AmaralNas duas primeiras pates deste tutorial (parte 1, parte 2) mostramos como obter, instalar e configurar o Git, as configurações básicas da sua conta no Github, como fazer um fork, clone, branches, commits e merges.
Neste post, vamos mostrar como diferentes integrantes de um projeto colaboram entre si utilizando o Git e o Github.
Brincando com remotes
Um remote nada mais é que um repositório remoto. No repositório que você clonou, há a referência “origin” que aponta para o repositório remoto original. No entanto, o git nos permite ter vários repositórios remotos, de forma que eu possa obter o código de um ou de outro sem maiores complicações.
Para ver os repositórios remotos que você possui, execute:
origin
Neste caso, eu só tenho o origin, que aponta para o meu repositório no Github (execute git remote -v para ter mais detalhes), mas o repositório oficial é o do MoIP Labs. Se eu quisesse atualizar meu código com o código do repositório oficial, eu teria antes que adicionar o mesmo como um repositório remoto. Neste caso, o comando seria:
O que o comando acima faz é adicionar a referência chamada moiplabs ao repositório remoto em git://github.com/moiplabs/moip-rails.git. Nós utilizaremos esta referência para obter o código fonte do repositório oficial.
Baixando o código do repositório oficial
Depois de adicionar a referência para repositório remoto principal, podemos fazer o fetch do mesmo, ou seja podemos obte-lo. O processo é bem simples:
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (9/9), done.
From git://github.com/moiplabs/moip-rails
* [new branch] master -> moiplabs/master
Todo o código do repositório oficial foi baixado e colocado num branch chamado “moiplabs/master“. O que precisamos fazer agora é um merge deste branch com o nosso:
Auto-merging README.md
Merge made by recursive.
Gemfile.lock | 1 +
README.md | 10 ++++++----
lib/moip.rb | 2 ++
3 files changed, 9 insertions(+), 4 deletions(-)
Wow! Agora temos nosso código sincronizado com o código do repositório oficial! Para atualizar o seu repositório no Github com a nova versão é simples:
Counting objects: 21, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.39 KiB, done.
Total 12 (delta 8), reused 0 (delta 0)
To https://herberthamaral@github.com/herberthamaral/moip-rails.git
eb7fd9c..6cd5d8a master -> master
Enviando pull requests
Depois que você terminou de fazer uma modificação, geralmente você irá querer que sua modificação vá para o repositório oficial do projeto. Pra isso existe o pull request, que nada mais é do que uma mensagem para o(s) mantenedor(es) do repositório oficial, para que eles olhem seu código e avaliem se os mesmos devem ser integrados à versão oficial ou não.
Pra isso, vá na página do seu repositório e clique em Pull request. Na próxima tela, você pode descrever o que você fez, pedindo que o mantenedor do repositório aceite suas modificações:

Reportando issues
Se você não quer ou não pode fazer contribuições de código, uma outra boa forma de contribuir é através da notificação de erros/bugs e solicitações de novas features.
Conclusão
Esta série de tutoriais visou mostrar um pouco de como é que o desenvolvimento colaborativo e open source funciona com o Git e com o Github. Se você ainda não conhece o Git/Github, está é uma excelente oportunidade para começar a trabalhar com os dois.
Deixamos escapar algo importante? Ficou alguma dúvida? Nos deixe um comentário!
