Plano para estudar Git e GitHub enquanto aprende programação

Git e alguma tecnologia de hospedagem Git, como o GitHub, Bitbucket ou GitLab, são extremamente importantes para o nosso dia-a-dia como pessoa desenvolvedora de software. Mas, como aprender isso sendo que já temos tanta coisa para ver quando estamos aprendendo a programar?

Nesse artigo eu vou dar algumas dicas de Git e GitHub e um bônus para o uso de Terminal para usar enquanto estuda programação e intercalar os estudos afim de te ajudar a se tornar um ninja em Git e GitHub!

Podemos utilizar esse plano para qualquer prática de estudos, seja de aprender HTML, CSS, JavaScript, Python, Node.js, Ruby, Elixir etc. Não importa a técnologia, versionar nosso trabalho com o Git é o fluxo padrão para trabalhar com programação.

Preparando o ambiente de estudos

Antes de começar a aprender programar, será necessário montar um ambiente de estudos para guardar nossos códigos de práticas e exemplos do que estamos aprendendo.

Para isso será necessário cumprir alguns requisitos de sistema:

  • instalar o Git em sua máquina
  • criar uma conta no GitHub
  • criar um diretório de trabalho em sua máquina

Caso você já saiba como fazer tudo isso, pode pular direto para a parte de criação de repositórios no GitHub. Senão pode seguir os próximos passos, pulando os que você já tiver feito em sua máquina.

Instalando o Git em nosso sistema operacional

A instalação do Git é diferente para cada sistema operacional, por isso indico que siga o site oficial:

Mas, se estiver utilizando Windows, recomendo essa leitura:

Com o Git instalado, precisaremos criar uma conta no GitHub e configurar essa conta no Git em nossa máquina.

Criando nossa conta no GitHub

Para criar uma conta no GitHub, acesse o site github.com e preencha o formulário principal.

O formulário de cadastro é o primeiro que aparece se entrarmos no GitHub sem estarmos logados previamente.

Recomendo que coloque um nome de usuário legal, pois nós enviamos nosso GitHub em curriculuns ou mesmo no nosso LinkedIn.

Imagem de criação de um usuário de exemplo

Será necessário informar ao GitHub qual o tipo de plano de uso queremos utilizar, escolha a opção free.

Tela de configuração de plano de uso do GitHub

O GitHub vai perguntar algumas coisas antes de finalizar a configuração da sua conta para coleta de dados para melhoria da plataforma, podemos responder ou pular para a próxima tela.

Com tudo devidamente configurado no GitHub, podemos agora começar um projeto.

Tela de confirmação de criação de conta do GitHub

Não vamos criar o repositório agora. Antes disso vamos configurar o usuário e email que usamos para criar nossa conta no GitHub no Git em nossa máquina.

Configurando o Git com nossos dados do GitHub

Execute o seguinte comando, colocando entre aspas o seu nome de usuário do GitHub:

git config --global user.name "Nome de usuário do GitHub"

E agora configure, também entre aspas, o email que foi cadastrado no GitHub:

git config --global user.email "email@provedor.com"

Configurando nossa chave de acesso ao GitHub

Sempre que vamos acessar um repositório hospedado no GitHub via terminal é necessário que tenhamos permissão de acesso e que façamos login. Para que não tenhamos que logar toda vez que queremos enviar algo para um repositório, utilizamos uma chave SSH. Uma chave de acesso que o GitHub consulta quando necessário.

Para criar essa chave, siga o documento do próprio GitHub:

Com o Git e GitHub configurados, podemos partir para a prática!

Nosso fluxo de trabalho com Git, GitHub e o Terminal

Vamos combinar uma regra: toda vez em que formos criar um micro projeto para estudar algo, como fazer uma página HTML, um jogo em linha de comando com Node.js ou qualquer coisa do tipo, vamos criar um repositório, clonar em nossa máquina, trabalhar nele utilizando branches e fazer pequenos commits para enviar para o GitHub.

Isso vai nos garantir alguma experiência que precisamos para utilizar essas ferramentas com maestria no nosso dia-a-dia.

Então, vamos lá!

Imagine que estamos começando um novo projeto de estudos, então vamos seguir o passo a passo:

Criar um novo projeto

Acesse sua conta no GitHub e clique no ícone de mais (+) no topo da página.

Criando um novo repositório

Clique em New repository.

Vamos imaginar que estou criando um projeto para estudar HTML, então vou colocar esse nome no repositório: aprendendo-html. Porém poderia ser o nome de uma página que está sendo criada ou um projeto qualquer, como, por exemplo: curriculum-em-html, jogo-da-cobrinha, pastel, kibe…

A descrição do projeto é opcional, porém é bem interessante que coloque um bom texto ali, pois é o que irá identificar o que faz o seu projeto e outras pessoas podem querer te ajudar. Nesse caso deixei com a frase “Repositório de estudos da linguagem HTML”.

Imagem dos campos de criação do repositório preenchidos

Podemos criar o repositório com um README ou já informando qual a licença de uso do projeto, então dê uma olhada em bons exemplos de READMEs, nesse link: A template to make good README.md. E também em qual licença utilizar em seu projeto: choosealicense.com. Os exemplos são em inglês, mas podemos utilizar o translate do Google para facilitar nossa vida.

Criando uma pasta de trabalho em nosso sistema operacional

Com o nosso repositório criado, agora devemos clonar ele em nossa máquina, mas antes disso, vamos criar uma pasta onde clonaremos todos os futuros repositórios em que formos trabalhar.

Se você estiver utilizando Windows, recomendo a instalação do cmder para utilizar no lugar do CMD, o terminal padrão do Windows. Assim os comandos serão padronizados e esse tutorial continuará servindo pra você.

Vamos utilizar o terminal para criar uma pasta que será nosso workspace (local de trabalho). Fazemos isso para manter uma organização no sistema operacional, senão vamos perder nossos projetos espalhados por aí, assim como perdemos gifs de gatinhos que salvamos em nosso computador.

Para isso, vamos acessar a nossa “home”, a pasta onde ficam as outras pastas de usuário do sistema operacional (como documentos, imagens, vídeos):

cd ~/

Se você rodar o comando ls, verá uma saída parecida com essa:

Saída do comando ls no Linux

As pastas aparecerão diferentes para você, pois esse aí é o meu computador e eu possuo diretórios que você pode não ter e você pode possuir diretórios que eu não tenho.

Execute o comando mkdir nome_da_pastapara criar o workspace:

mkdir workspace

Pronto! Agora temos a pasta padrão para trabalho criada e nela iremos clonar nossos repositórios.

Clonando o repositório

Vamos seguir no meu exemplo, do repositório aprendendo-html, será necessário, agora, clonar ele dentro da pasta workspace. Para isso fazemos:

cd ~/workspace

Agora podemos clonar o projeto. Para isso vamos pegar o link no GitHub.

O link está naquele botão de download que fica listado em nosso repositório criado:

Botão de clone ou download do nosso repositório no GitHub

Mude de HTTPS para SSH, pois nós já configuramos uma chave de acesso a nossa conta no GitHub.

Mudando para SSH

Agora basta rodar o comando git clone e o link para o repositório. Exemplo:

git clone git@github.com:eusouumexemplo/aprendendo-html.git

Com o repositório clonado, como na imagem abaixo.

Mensagem de confirmação de download no Terminal

Podemos acessar a pasta do repositório Git com o comando cd. E então podemos começar a trabalhar nele.

No meu exemplo seria cd aprendendo-html.

Criando uma branch

Toda vez que formos alterar algo em um projeto versionado com o Git, vamos criar uma branch com o nome da tarefa que estamos fazendo. Para isso utilizamos o comando git checkout -b nome_da_tarefa.

Exemplo:

Mudando de branch no terminal

Feito isso, estaremos na branch que acabamos de criar e podemos, então, começar a codar loucamente.

Gatinho codando

Fazendo o commit

Sempre que finalizarmos alguma alteração, vamos criar um commit. Imagina que você acabou de criar uma página HTML e adicionou títulos e alguns textos nessa página. Teóricamente temos a primeira versão dela. Então fazemos um commit.

Para isso, vamos adicionar os arquivos alterados com o comando git add nome_dos_arquivos e para saber quais foram os arquivos alterados, podemos rodar o comando git status.

Exemplo de novo arquivo com a primeira versão

No exemplo acima eu criei um arquivo index.html, rodei um git status para saber o que foi alterado, adicionei o arquivo com o comando git add e rodei novamente o git status para ver se o arquivo está na área de trabalho do Git.

Com isso teríamos algo para commitar. Então basta rodar o comando git commit -m "mensagem de commit". Lembre-se de colocar uma mensagem descritiva do que foi adicionado com o commit.

Fazendo o merge

Com o nosso commit feito a nossa nova branch temos uma versão diferente da master. Podemos confirmar que estamos com diferença entre master e nossa branch rodando o seguinte comando (ainda na branch nova):

git diff master

No meu exemplo, isso resultaria em uma saída desse tipo:

Saída do git diff na minha branch comparada com a master

O Git nos mostra o novo commit, quais arquivos foram adicionados ou alterados e também mostra o que foi alterado.

Sabendo que, realmente, nossa branch nova está com diferenças da master, precisaremos fazer um merge para juntar os novos commits, feitos na nova branch, com a master. Para isso precisamos voltar para a master e rodar o comando git merge.

Para voltar para a master, usamos o comando git checkout master e para fazer o merge, o comando git merge nome_da_branch:

Exemplo de merge

O Git nos mostrará uma saída confirmando o que foi adicionado.

Enviando para o GitHub

Com todas as nossas alterações devidamente feitas, podemos, agora, enviar para o GitHub.

Utilizamos o comando git push origin masterpara tal.

Rodando o git push origin master para enviar os commits para a master remota

Também poderíamos rodar somente um git push.

Com isso nosso commit irá aparecer no GitHub:

O último commit, que aparece no topo do repositório, é o que acabei de enviar com o git push.

Conclusão

Com esse tutorial, podemos, sempre que formos estudar algo novo, criar um projeto de estudos no GitHub. Isso vai nos ajudar a treinar a linha de comando, Git e GitHub, além de criar um portfólio para mostrarmos em entrevistas de emprego.

Essa prática também nos ajuda a entender melhor o fluxo de uso do Git com repositórios remotos (os repositórios hospedados em alguma plataforma como o GitHub) e elevará nosso nível de conhecimento e habilidades no terminal.

Vamos reforçar o combinado: sempre que você for criar um novo projeto de estudos, volte aqui e siga o passo a passo de criação de um novo repositório e trabalhe com branches e commits até o push para o GitHub, ok? :)