Cadastre-se

Comece agora a utilizar o MoIP em seus projetos.

Guia prá¡tico: contribuindo com projetos do MoIP no Github – Remotes, fetches, pull requests e issues

por

Nas 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:

~/moip-rails$ git remote
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:

~/moip-rails$ git remote add moiplabs git://github.com/moiplabs/moip-rails.git

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:

~/moip-rails$ git fetch moiplabs
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:

~/moip-rails$ git merge moiplabs/master
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:

~/moip-rails$ git push origin master
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!


Ver outros Posts