Sumário
O que é Github?
Segundo a própria página do Github ela é uma plataforma completa de desenvolvimento para construir, escalar e entregar software seguro.
A plataforma foi fundada em 2008 e é a mais conhecida para versionamento de código, colaboração, desenvolvimento em nuvem, automatizações e muito mais. É uma ferramenta poderosa e essencial e tem sido utilizada também para exibir portfólio por muitos desenvolvedores.
São mais de 83 milhões de desenvolvedores utilizando a plataforma para construir novos projetos, criando novas features para projetos existentes, colaborando em projetos open sources, corrigindo bugs, etc.
Para este tutorial você precisa ter uma conta no GitHub. Fique tranquilo, você pode utilizá-lo para guardar seus projetos públicos e também os privados utilizando planos gratuitos.
Criar e configurar um repositório
Um repositório mantém um projeto e este projeto pode conter qualquer tipo de arquivo: pastas, imagens, scripts, videos, etc.
Quando criamos um repositório, o próprio Github sugere a criação de um arquivo ReadME. Este arquivo serve para descrever informações sobre o seu projeto.
Em sua conta do Github, na página inicial ou na aba de repositórios, clique no botão verde New.
Vamos criar o repositório Olá Mundo, mas um detalhe importante: não utilize acentos nem espaços nos nomes, os caracteres serão removidos e o seu repositório vai ficar com nome errado.
Defina se o repositório será público ou privado e marque a opção para adicionar o arquivo ReadMe e clique em criar repositório. Você vai ter uma tela parecida com essa:
Criar um Branch
Por padrão o branch principal se chama main e ele é considerado definitivo. Outros poderão ser criados a partir dele e serem evoluídos (atualizações nos arquivos) sem impactar no main. Quando quiser, dê um merge para o branch main para unir todas as versões novamente.
Utilizar branches permitirá a você ter diferentes versões do seu repositório e evoluir cada uma delas de forma separada e em algum momento unir todas elas em uma versão principal, ou não. Caso outras pessoas trabalhem em outros branches diferentes do seu, você poderá puxar essas atualizações quando quiser.
Para criar um branch clique sobre o botão do branch main
, digite o novo branch e clique em criar branch a partir do main conforme a imagem. Veja que sempre criamos um branch a partir de outro. Esta ação cria uma cópia exata do branch de origem, então em projetos maiores saiba exatamente de onde você cria suas cópias.
Eu criei o branch alteracao1
a partir do main e fiz 3 commits nele:
- Adicionando index.html;
- Adicionando um parágrafo;
- Atualizando o parágrafo.
Depois fiz o merge dele no main
e veja como ficou a linha do tempo. Eles ficaram separados durante o um tempo enquanto o alteracao1
recebia algumas alterações e logo depois foram unificados novamente.
Fazendo alterações nos arquivos e commits
Vamos fazer algumas alterações no branch alteracao1
que acabamos de criar. Clique em Add file
e create new file
conforme a imagem abaixo. Na nova tela informe o nome do arquivo e escreva algo na grande área em branco destinada para conteúdo.
Logo abaixo nesta nova tela, haverá uma caixa para o novo commit. Escreva algo informativo no título e dê um commit diretamente no branch alteracao1
.
Repita esse processo mais duas ou três vezes realizando novas alterações no mesmo arquivo e fazendo o commit com um título informativo sobre as alterações que realizou.
Para editar o arquivo criado, vá para a tela principal (aba code), altere o branch para o alteracao1
e clique sobre o arquivo que deseja editar. Tenha certeza de estar no branch correto.
Criando pull requests
Agora que temos algumas atualizações no branch alteracao1
vamos criar uma pull request para mesclar nossas alterações no branch principal main
.
Na nova tela, no branch alteracao1
clique no botão New Pull Request e uma página como esta vai abrir para você. Quero que observe alguns pontos importantes nesta tela.
Mais acima da tela, veja que o branch alteracao1
está sendo comparado com os arquivos do main
e para lá que ele vai ser enviado e mesclado caso tudo ocorra bem. Na caixa de texto logo abaixo, é possível (e importante) colocar de forma resumida o que foi alterado em todos os arquivos desse branch que estamos querendo enviar para o main.
Mais abaixo da tela, vemos todos os arquivos que foram atualizados e quais são as diferenças entre a nova versão e a versão anterior que estava nesse mesmo branch. Clique em Create pull request.
Mesclando pull requests (merge no main)
Pull requests são solicitações de merge em um determinado branch. Elas são criadas por qualquer pessoa que trabalha no mesmo repositório e ficam aguardando alguém revistar o código e realizar o merge no main. Elas ficam disponíveis na aba Pull requests do repositório e nesta tela você tem acesso as PRs abertas e fechadas.
Vamos acessar esta tela e ver o que temos de bom por lá.
Clique sobre a PR que você criou e veja que o Github permite que você faça o merge para o branch que essa PR foi criada.
Mas como nem tudo são flores, as vezes existem conflitos…a vida é cheia de conflitos e aqui não seria diferente. Vamos ver um exemplo: eu fiz alterações no arquivo index.html e fiz um commit diretamente no branch main e, sem puxar as atualizações para o branch alteracao1
segui fazendo atualizações nele também.
Quando tentei dar um merge, o Github não entendeu qual arquivo é o correto e me deu esta opção de resolver conflito. Ao clicar em Resolve conflicts eu vejo a tela mais abaixo.
A resolução de conflito nem sempre é simples, mas para entender, a ferramenta nos mostra as alterações feitas no branch alteracao1
e o que já existe no main. Você pode aceitar alteração de algum branch ou aceitar de ambos, apenas apagando o que não deve ficar ou organizando o arquivo do jeito certo.
Nesse caso deve ficar assim:
Após realizar os acertos, clique em Mark as resolved e depois commit merge na mesma tela.
O Github vai retornar para a tela da PR e vai permitir o merge, apenas clique no botão e seja feliz. Seu repositório estará atualizado.
O fluxo simplificado de trabalho com Github
Existem fluxos de trabalho de vários tipos com Github e outras ferramentas de versionamento, mas um jeito simples e funcional passa por proteger seu branch principal sempre que for possível.
Clonar o projeto para uma estação de trabalho, seja local ou na nuvem. Criar um novo branch a partir do branch principal e iniciar o seu trabalho (codifique como se não existisse o amanhã).
Faça commits sempre que finalizar algo relevante da funcionalidade que está trabalhando.
Guando terminar dê um push para o repositório remoto usando o mesmo nome que você criou na máquina local.
Vá no Github e crie uma Pull request para o branch principal ou para develop (isso deve ser combinado com sua equipe). Descreva na PR tudo que você fez nessa funcionalidade, como foi implementado, dê orientações de como testar a funcionalidade (isso ajuda muito).
Aguarde a devolutiva do pessoal que vai testar.
Conhecimento é algo que ninguém pode tirar de você e quando é compartilhado não se perde, multiplica.
Imagem de storyset no Freepik
[…] sua conta no Github e crie um novo repositório. Caso precise de mais detalhes para essa etapa, sugiro que leia esse post. Após a criação do novo repositório, copie o endereço que foi gerado pelo Github e fique […]
[…] Entender como funciona o Github (acompanhe este tutorial); […]
[…] Neste post nós vimos o funcionamento do Github e agora sabemos que esta plataforma hospeda todo tipo de projeto e permite a colaboração com a equipe. No Github também é possível executar algumas ações como commits, merges, novos branches, etc, diretamente na web sem precisar executar comandos ou instalar algum programa no computador. […]
[…] Entender como funciona o Github (acompanhe este tutorial); […]
[…] este exemplo vamos utilizar um repositório criado gratuitamente no Github. Crie seu repositório com ajuda desta publicação, execute os comandos abaixo no seu programa de linha de comando dentro do repositório que você […]