GIT & GITHUB

Do Básico ao Avançado

Domine Git e GitHub com este material completo. Com ele você aprenderá a gerenciar fluxos de trabalho de maneira simples e dinâmica.

Sabe quando você quer rastrear todos os problemas (bugs) que foram encontrados dentro do seu projeto?

Então, a ferramenta do GitHub, conta com uma seção pública onde qualquer pessoa pode informar bugs que foram encontrados durante a utilização do seu código.

Funciona como se fosse uma espécie de “Call Center” do consumidor.

Sabe quando você compra aquele produto, ele começa a apresentar problemas em seu funcionamento, e daí você liga para um número que informaram atrás da caixa do produto em caso de problemas? É isso!

Se tratando do GitHub, as issues elas ficam ao lado da seção de Code:

Caso você clique no botão New Issue, você será redirecionado a uma nova tela, onde poderá informar o título da issue, e uma pequena descrição em detalhes sobre os problemas que você encontrou.

Para que futuramente você possa acompanhar a resolução do problema que você está enfrentando.

Outra atuação das issues, é quando queremos fazer sugestão de novas features (ferramentas) para o projeto em questão.

Por exemplo, vamos supor que você gostou tanto de uma biblioteca do GitHub que sentiu falta de uma funcionalidade capaz de fazer determinada ação.

Daí você pode ir na aba das issues, e fazer uma sugestão para que no futuro eles implementem essa nova funcionalidade ao código.

Será a partir das Issues que conseguimos realizar um histórico de todas as alterações que realizamos no código.

Ou seja, conseguimos documentar step-by-step tudo o que fizemos para resolver bugs ou quem sabe adicionar novas funcionalidades.

Nesta seção, nós iremos aprender a criar novas issues e finalizá-las, portanto vamos colocar a mão na Massa!

#1: Crie um novo repositório (GitHub)

Para testarmos as issues, é importante que você já tenha em mãos um repositório de testes, ou quem sabe crie um novo repositório específico para testar a criação e finalização de issues.

Com o repositório em mãos, já podemos seguir para o próximo passo.

#2: Crie uma nova issue

Logo no início deste material, você viu como é fácil criar uma nova issue, basta ir à página principal do seu repositório, clicar em Issues > New Issue.

Você será redirecionado para uma nova tela aonde poderá informar o título da sua issue seguido de uma descrição detalhada da mesma.

Para finalizar a criação, basta clicar no botão Submit new issue.

#3: Visualizando e acompanhando sua issue

Após criar uma nova issue, você será direcionado a esta tela:

Aqui você tanto pode fechar sua própria issue (pois você é o criador dela), quanto fazer novos comentários ou responder pessoas.

Você sabia que é possível responder uma Issue, com o Commit que você realizou? Não? Veja como é fácil:

Supondo ainda que queremos resolver aquela funcionalidade que criamos em nosso repositório anteriormente ([Pedido] Criação de Funcionalidade (Memory Cache)).

Considerando que:

+ Nós fizemos o Clone desse repositório para nossa máquina local.

+ Adicionamos a nova funcionalidade.

+ Realizamos um commit.

+ E por fim fizemos um Push para o repositório do GitHub.

Basta que entremos na aba de issues, mais especificamente dentro da funcionalidade que resolvemos, e dentro do comentário, informar o hash do commit que adiciona essa funcionalidade:

Por fim, basta clicar em Comment que o GitHub automaticamente reconhecerá esse hash e criará um link para ele:

Caso você queria visualizar o hash dos commits que você realizou, ou quem alguém realizou em um repositório, vá aba Code, e clique no link Commits:

Ali dentro você poderá encontrar uma grande lista de commits:

Para copiar o hash, basta clicar no ícone das duas janelinhas ao lado do texto “Verified”.

Neste exemplo, vamos ver o quão fácil é resolver uma issue por meio de uma determinada branch.

Para fazer esse teste, antes, certifique-se de que:

+ Você criou uma nova issue no GitHub.

+ Você criou uma nova branch na sua máquina local (dentro do projeto).

+ Você resolveu o desafio proposto na Issue.

Só que antes de realizar o commit, você pode adicionar uma nova FLAG:

git commit -m “Resolução do Problema 2” #2

Essa hashtag com o número 2, faz referência a Issue 2 que criamos anteriormente, se você perceber, lá na tela de Issues do GitHub cada issue tem sua própria hashtag:

Quando fazemos um commit informando essa FLAG, estamos dizendo ao GitHub que esse commit tem a ver com issue cuja hashtag é igual a 2.

Após fazer isso, precisamos acionar o seguinte comando para fazer com que a nossa branch vá para o GitHub:

git push origin minha-branch

Voltando a página da Issue #2 no GitHub, veremos que um novo commit estará atrelado a Issue.

Para desativar as issues do seu repositório, vá na aba settings localizada na página principal, e abaixo basta desmarcar a caixa de seleção relacionada a issues:

Com isso, as issues não aparecerão mais no seu projeto, e os usuários não conseguirão criar novas issues.

No GitHub quando acessamos a aba de commits, e clicamos em um commit específico, podemos fazer comentários tanto de forma global (relacionado ao commit inteiro), quanto em uma linha específica:

Para fazer um comentário de forma global, é só escrever um novo comentário no final dessa página.

Agora caso queria fazer um comentário especificamente em uma linha, basta passar o cursor do mouse em cima de uma linha de código, até aparecer o ícone do +, clicando nele você consegue inserir um novo comentário na caixa de texto que irá aparecer.

O GitHub possui uma funcionalidade capaz de analisar o texto que inserimos dentro de um commit, e se ele perceber que usamos uma hashtag atrelada ao número de uma Issue, ele pode finalizar essa issue no momento que fizermos o push.

Com este comando você conseguirá dizer ao Git para ele encerrar uma determinada Issue:

git commit -m “Finalização #2”

Caso preferir, você pode adicionar o comando “fixes” antes da hashtag, que o git vai encerrar a Issue da mesma forma:

git commit -m “Finalização fixes #2”

Para fechar uma issue por meio visual, basta ir na issue desejada, e no final clicar no botão “Close Issue”.

Ah e não se esqueça de sincronizar seu repositório local com o remoto, para que as alterações surtam efeito.

Em um grande projeto, existe a possibilidade de ocorrer uma desorganização devido à alta quantidade de issues que podem ser criadas.

Para facilitar isso, o GitHub criou as labels que funcionam como Post-Its coloridos, que nos ajudam a categorizar nossas issues, exemplo:

+ Pedido.

+ Criação de Ferramenta.

+ Problemas.

+ Alteração.

+ Remoção.

+ E afins.

Para criar uma nova Label, vá à área de Issues e clique no botão Labels:

Aqui o GitHub já nos traz algumas Labels padronizadas, mas nada impede que criamos uma nova Label, para criar uma label, basta clicar no botão New Label.

Basta informar o nome dessa label, a descrição e uma cor específica para ela, para finalizar clique no botão “Create Label” para criá-la definitivamente.

Agora, para adicionar uma label a uma Issue, entre na Issue desejada, e na opção ao lado selecione a label que você deseja atrelar a essa issue.

Para visualizar somente as Issues relacionadas com alguma Label, basta voltarmos na tela principal de Issues, e filtrar por Label:

Vamos supor que você tem um repositório super-famoso, com mais de 1000 downloads semanais, um sonho não acha?

E que desde a criação do seu repositório até hoje, ele já conta com 5 apoiadores, são eles:

+ Rafaela (a menina do front-end)

+ Gabriel (o jedi do back-end)

+ João (o tecladista do banco de dados)

+ Fernando (o vocalista da banda dom, mas que nas horas vagas se intitula full-stack)

+ Gustavo (o menino do TI)

Supondo que um determinado usuário do GitHub clonou nosso repositório, e durante a utilização se deparou com um erro especifico do front-end.

Você sabia que é possível, entrar nessa Issue e marcar a Rafaela (responsável pelo front-end da aplicação), por exemplo?

Isso é possível por meio das assinaturas, com ela, nós conseguimos fazer com que algum apoiador do repositório comece a receber notificações relacionadas a uma determinada Issue.

Para fazer uma assinatura, certifique-se de que você está dentro da página da Issue.

E em seguida clique em Assignees e selecione até 10 usuários para acompanhar essa Issue:

No GitHub nós temos uma ferramenta bastante legal atrelada as Issues, que são os Milestones.

Como a sua tradução já nos diz, milestones significa “conquistas”.

E no caso do GitHub, podemos adicionar uma espécie de checklist em uma Issue, documentando todos os passos que precisam fazer para resolvê-la.

Supondo que você tenha algumas Issues dentro do seu repositório, e que elas ainda não foram resolvidas:

Analisando as issues abertas, podemos dizer que as issues #3, #4 e #5 tem a ver com problemas relacionados a página inicial do nosso sistema, correto?

O que nós podemos fazer é agrupar esses bugs em um milestone, e atrelar a ele uma determinada data para corrigirmos esses erros.

Para criar um novo Milestone, clique no botão milestone existente na tela de issues.

Lembrando que isso só pode ser realizado pelo criador do repositório ou algum colaborador que está atrelado ao projeto, ok?

Em seguida clique em “New Milestone”:

Informe um título, uma data de entrega, e uma descrição, por fim clique no botão “Create Milestone” para finalizar a etapa de criação.

Com seu mais novo milestone criado, chegou o momento de adicionarmos Issues a ele.

Para isso, você vai precisar entrar em cada uma de suas Issues, e no canto inferior direito onde está escrito “Milestone”, você poderá selecionar o milestone que acabamos de criar.

Isso vai fazer com que essa Issue esteja intimamente relacionada com o Milestone, de modo que quando fecharmos essa Issue, a barra de progresso do Milestone seja alterada:

Como tínhamos 3 issues relacionadas com esse milestone e acabamos de fechar uma, o progresso estará em 33%.

Para visualizar as Issues relacionadas com esse milestone, basta que você clique no botão “2 open” abaixo da barra de progresso, que automaticamente você vai visualizar somente as Issues relacionadas com o milestone: