Como colaborar com
projetos opensource com
         GitHub


     http://julio.monteiro.eti.br
whoami
Joinville, SC
CCT, UDESC
Quem de vocês...
Quem de vocês...
   ...escreve código?
Quem de vocês...
 ...deixa outros verem
       seu código?
Quem de vocês...

 ...deixa qualquer um ver
        seu código?
Desenvolvedores não
 gostam que outros vejam (e
apontem) suas falhas e erros.
Desenvolvedores
  têm medo de
 "code review".
Desenvolvedores
 falam que só vão lançar o
código quando "terminado".
Desenvolvedores
 falam que só vão lançar o
código quando "terminado".
                (e nunca terminam)
E não só
desenvolvedores.
História
• Novela mexicana do BitKeeper
• Objetivos:
  • CVS é um exemplo do que não fazer
  • Workflow distribuído
  • Forte esquema contra corrompimento de
    dados
 • Performace
Que usa?
•   Linux Kernel
•   Perl
•   Gnome
•   Android
•   X.org
•   Ruby on Rails
•   E 95%* das bibliotecas em Ruby
Que usa?
•   Linux Kernel
•   Perl
•   Gnome
•   Android
•   X.org
•   Ruby on Rails
•   E 95%* das bibliotecas em Ruby

                                     * Inventei este número
Por dentro do Git

• Blobs
• Trees
• Commits
Fluxo de Trabalho


   Diretório de Trabalho
Diretório de Trabalho
Diretório de Trabalho


       git add


Diretório de “Staging”
Diretório de Trabalho


       git add


Diretório de “Staging”


     git commit


  Repositório Local
Diretório de Trabalho


       git add


Diretório de “Staging”


     git commit
                                    Repositório
                                     Remoto
  Repositório Local      git push
+
Você pode...
• Melhorar e ajudar o que outros estão
  fazendo.
• Continuar o que outros pararam.
• Comentar sobre códigos (na realidade,
  sobre commits).
• Verificar a “rede” de “forks” de um
  repositório.
Como contribuir?
    Passo a passo
Estude!
• http://git-scm.com
• http://whygitisbetterthanx.com
• http://book.git-scm.com
• http://learn.github.com
• http://gitcasts.com
• http://peepcode.com
Como colaborar com
projetos opensource com
         GitHub


     http://julio.monteiro.eti.br

Como colaborar com projetos opensource com o GitHub