O GitHub é um site onde são colocadas bilhões de linhas de código e onde milhões de desenvolvedores se reúnem todos os dias para colaborar uns com os outros e relatar problemas existentes no software de código aberto. Basicamente, é uma plataforma de hospedagem de código-fonte com controle de versão usando o Git, onde a comunidade se ajuda. Mesmo sendo tão importante, muitos não sabem como usar o GitHub.
Como desenvolvedor, não é recomendável ignorar o GitHub como parte do seu trabalho ou estudos cotidianos. Através desta incrível plataforma, você poderá publicar os seus códigos e descobrir inúmeras novas possibilidades, além de poder ajudar desenvolvedores que estão com problemas e até mesmo a conseguir um emprego como programador.
Neste artigo eu irei explicar como usar o GitHub, alguns conceitos-chave e alguns de seus recursos para melhorar a sua experiência na plataforma.
Por que o GitHub?
Deixando de lado qualquer preferência pessoal ou diferenças técnicas, existe um grande motivo pela qual você deve usar o GitHub: todo mundo usa essa plataforma. Portanto, se você deseja uma ampliação no seu network e resultados mais eficazes, não tem para onde correr.
A maioria dos codebases tem migrado ao longo do tempo de outros sistemas de controle de versão para Git por causa de sua conveniência. O GitHub tem sido historicamente bem posicionado e empenhado um grande esforço para atender às necessidades da comunidade Open Source.
Portanto, hoje, sempre que você procurar alguma biblioteca, 99% das vezes a encontrará no GitHub. Além dos repositórios privados que são hospedados por alguns desenvolvedores.
GitHub Issues
Os “issues” do GitHub são um dos rastreadores de bugs mais populares do mundo. Eles fornecem aos proprietários de um repositório a capacidade de organizar, marcar e associar issues a milestones.
Se você abrir um problema em um projeto gerenciado por outra pessoa, ele permanecerá aberto até que você o feche (se você descobrir o problema que você teve) ou o proprietário do repositório o feche.
Às vezes, você recebe uma resposta definitiva e, em outros momentos, o problema fica em aberto e marcado com algumas informações que o categorizam. Em seguida, o desenvolvedor pode recuperá-lo para corrigir o problema ou melhorar a base de código com seus comentários.
Seguir
Com o GitHub, você pode seguir um desenvolvedor ou um repositório acessando o perfil do usuário e clicando em “seguir” ou clicando no botão “watch” .
Em ambas as opções, a atividade será exibida na sua time line como acontece nas redes sociais. Porém, diferente delas, você não verá o que os usuário dizem, mas sim o que eles fazem.
Fork
Um botão fundamental para o funcionamento do GitHub, tendo em vista que um fork é uma base para o Pull Request (PR), que eu vou especificar mais abaixo. Uma pessoa pode separar seu repositório, fazer algumas alterações e, em seguida, criar uma pull request para pedir que você adicione essas alterações.
Às vezes, a pessoa que aciona o forks em um repositório, pode nunca pedir que você adicione as alterações. Eles podem marcar “fork” no seu repositório só porque gostaram do seu código e decidiram adicionar algo em cima, mas que não será acrescentado no repositório original. Um usuário também pode corrigir um bug que estava enfrentando, específico para eles.
Stars
Um grande recurso do GitHub é a possibilidade de dar uma estrela para um repositório (uma espécie de ‘favoritar’). Esta ação irá incluí-lo em sua lista de “repositórios marcados com estrelas” e permitirá que você acompanhe os projetos que achar interessantes e descubra alguns projetos semelhantes.
É também um dos mecanismos de classificação mais importantes, pois quanto mais estrelas um repositório possui, mais popular e importante ele geralmente é. Isso resulta na exibição mais proeminente nos resultados de pesquisa.
O GitHub também possui uma página de tendências onde ele apresenta os repositórios que obtêm o maior número de estrelas em um determinado período de tempo (por exemplo, hoje, nesta semana ou neste mês).
Pull Requests
Na seção anterior, apresentei a Pull Request(PR): uma pessoa pode marcar “fork” no seu repositório, fazer algumas alterações e criar uma pull request para solicitar que você mescle essas alterações.
Um projeto pode ter centenas de PRs, e geralmente é o caso de um projeto mais popular, quanto mais PRs ele tiver, como o projeto React:
Quando uma pessoa envia uma pull request, ela precisa ser revisada pelos principais responsáveis do projeto.
Dependendo do scope de sua pull request (o número de alterações, o número de coisas afetadas por sua alteração ou a complexidade do código tocado) o responsável pode precisar de mais ou menos tempo para garantir que suas alterações sejam compatíveis com o projeto.
Gerenciamento de Projetos
Juntamente com os “issues”, que são os locais onde os desenvolvedores obtêm feedback dos usuários, a interface do GitHub oferece outros recursos destinados a fornecer algumas features de gerenciamento de projetos.
Um desses é o “Projects”. É muito novo no ecossistema e muito raramente usado, funciona como um Kanban Board que ajuda a organizar os problemas e o trabalho que precisa ser feito.
Outro gerenciamento de projeto popular é o milestones . Faz parte da página de “issues” , e você pode atribuir “issues” a milestones específicos, que podem ser um release target.
Por falar em release, o GitHub aprimorou a funcionalidade da tag Git introduzindo releases. Uma tag Git é um ponteiro para um commit específico e, se feita consistentemente, ajuda a reverter para a versão anterior do seu código sem especificar um commit.
Uma release do GitHub se baseia nas tags do Git e representa um release completo do código, juntamente com arquivos zip, notas da release e recursos binários que podem representar uma versão totalmente funcional do produto final do seu código.
Enquanto uma tag Git pode ser criada programaticamente (por exemplo, usando o programa git da linha de comando), criar um release do GitHub é um processo manual que acontece através da interface do usuário do GitHub.
Comparando commits
Uma das coisas mais importantes que você pode querer fazer é comparar um ramo com outro. Você pode querer comparar o commit mais recente com a versão que você está usando atualmente para ver quais mudanças foram feitas ao longo do tempo.
O GitHub permite que você faça isso com o compare view: basta adicionar / compare ao final do nome do repositório.
Por exemplo, https://github.com/facebook/react/compare
Na figura abaixo, comparo o último React v15.x com a versão mais recente da versão 16.0.0-rc disponível no momento desta publicação para ver o que mudou.
Esta imagem mostra os commits feitos entre dois releases (ou tags ou commits) que foram alterados, e o atual, se o número de mudanças for menor que um valor razoável.
Considerações finais
Essas são apenas algumas das funções mais básicas presentes na plataforma, mas acredito que seja o suficiente para iniciar uma exploração mais profunda.
O GitHub é uma incrível ferramenta e serviço para aproveitar, uma verdadeira joia no conjunto de ferramentas para desenvolvedores de hoje. Este tutorial ajudará você a começar, mas a experiência real de trabalhar em projetos de código-fonte aberto (ou de código fechado) do GitHub irá fazer você entender da melhor forma como se usa a plataforma.
Se você é um programador e está buscando novas oportunidades profissionais, acesse a ProgramaThor, uma stratup focada no recrutamento de desenvolvedores. Para se candidatar às vagas e receber notificações em casos de matching, basta de cadastrar e completar seu perfil corretamente.
Sobre o autor

Últimos artigos
Dicas19 Setembro, 2018Como escolher o notebook certo para programação
Dicas12 Setembro, 2018Como pensar igual um programador: dicas para solucionar problemas
Top5 Setembro, 2018Top 7 ferramentas de código aberto para desenvolvedores
Dicas29 Agosto, 201810 dicas para novos desenvolvedores