Aprender GIT é fácil e vou te provar isso (Parte 5)

Fala, escoteiro! Tudo na mais perfeita ordem? No último post tivemos um trabalhinho a mais porque precisamos configurar nossa máquina para ter acesso via linha de comando à nossa conta do Github, mas esse é o único passo chato, eu prometo. A partir de agora volta a ser tudo uma maravilha!!!

A gente aprendeu como "empurrar" alterações de nossa máquina para o Github, mas como a gente já viu, em nosso dia-a-dia como desenvolvedor, não serão raros os momentos em que teremos que trabalhar em equipe, então é comum que alguém faça uma alteração, mande para o Github, e a gente precise baixar para nossa máquina. E ai, será que difícil fazer isso?

Como baixar atualizações do Github para a minha máquina?

Para esse exemplo vamos voltar em nosso repositório e inserir um novo arquivo por meio da interface web do Github. Vou utilizar a sugestão de arquivo Read me que o Github está nos dando.

Clique em Add a README

image.png

Na nova tela que irá se abrir você poderá editar o conteúdo desse arquivo. Esse arquivo usa uma sintaxe chamada Markdown. Se você nunca ouviu falar nisso, seria interessante você estudar um pouco sobre como criar arquivos Markdown. Mas por hora vamos editar da seguinte forma:

# Curso Acampamento Dev: "Aprender GIT é fácil e vou te provar isso"
Repositório de Exemplo criado no curso "Aprender GIT é fácil e vou te provar isso"

Aquele caractere de # ali, não foi erro de digitação, ele faz parte de texto.

Role até o final da página em clique no botão Commit new file

image.png

Nesse momento um novo commit em sua branch master foi criado em seu repositório e seu README já pode ser visualizado.

image.png

Porém sua máquina ainda não recebeu essa atualização, precisamos baixar manualmente utilizando para isso o comando pull.

git pull origin master

Se tudo correr bem, o git responderá algo mais ou menos assim:

remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 800 bytes | 53.00 KiB/s, done.
From https://github.com/acampamentodev/curso-git-acampamento-dev
 * branch            master     -> FETCH_HEAD   
   0004dc8..6cacfb3  master     -> origin/master
Updating 0004dc8..6cacfb3
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 README.md

E se você reparar, foi criado um novo arquivo em sua máquina

image.png

Como ver as branchs no Github?

Pela interface do Github é possível visualizar todas as nossas branchs...

image.png

Porém como só enviamos nossa branch master, só temos essa remotamente. Vamos então criar uma nova branch e enviá-la para o Github?

git checkout -b feature/calcularArea

O comando checkout, como vimos na parte 2 desse curso, serve para trocar de branch, porém se usarmos o flag -b ele pode criar uma nova branch e mudar para ele ao mesmo tempo 🥳.

O Git te responderá com algo mais ou menos assim: Switched to a new branch 'feature/calcularArea'. Isso significa que ele foi capaz de criar a branch e já mudou para ela.

Vamos agora empurrar essa branch para o Github.

git push origin feature/calcularArea

Algo similar a isso será exibido:

Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: 
remote: Create a pull request for 'feature/calcularArea' on GitHub by visiting:
remote:      https://github.com/acampamentodev/curso-git-acampamento-dev/pull/new/feature/calcularArea
remote: 
To https://github.com/acampamentodev/curso-git-acampamento-dev.git
 * [new branch]      feature/calcularArea -> feature/calcularArea

Agora temos 2 branchs no Github, e ele inclusive nos mostra isso:

image.png

Vamos fazer uma alteração em nossa nova branch e subir novamente para o Github.

Modifique o seu arquivo funcoes.php

<?php

function obterIniciais(string $nomeCompleto) {
    $partes = explode(" ", $nomeCompleto);
    $iniciais = array_map(function($nome) { 
        return $nome[0]; 
    }, $partes);

    return strtolower(implode("", $iniciais));
}

function calcularPercentual($total, $percentual) {
    return $total * $percentual / 100;
}

function calcularArea($base, $altura) {
    return $base * $altura;
}

Vamos agora adiciona-lo ao stage, commitar e empurrar para o Github

git add .
git commit -m "Inclue nova função para calcular área"
git push origin feature/calcularArea

Legal! Agora nós temos 2 branches no Github, sendo que a nossa feature/calcularArea está mais atualizada que a nossa master.

Sabia que dá para fazer um merge dessas duas branches pela interface do Github?

O Github tem um recurso bem interessante chamado de Pull Request. Por meio dele podemos solicitar que as alterações que realizamos em uma branch sejam mergeadas com outra branch, tudo de forma visual. Vamos ver como é simples.

1º Passo: Clique em Pull Requests na barra superior do seu repositório

image.png

2º Passo: Nessa nova tela clique em New Pull Request

image.png

3º Passo: Agora precisamos dizer qual Branch vai para dentro da outra.

image.png

4º Passo: Feito isso, o Github irá lhe mostrar diversas informações super interessantes, como:

  • Quais pessoas trabalharam nessas alterações
  • Quando foram feitas
  • O que foi modificado
  • etc...

Clique em Create Pull Request

image.png

5º Passo: Dê um título para a sua Pull Request, coloque um comentário (se quiser, mas é interessante por) e clique em Create Pull Request

image.png

6º Passo: Prontinho, agora sua Pull Request (ou carinhosamente chamada de PR) está pronta para ser mergeada. Clique em Merge Pull Request e em seguida confirme

image.png

Sempre que uma PR é mergeada ela recebe uma coloração diferente e uma Flag identificado a ação.

image.png

Se você navegar agora até o seu arquivo de funções, mesmo na branch master, você verá sua nova função.

image.png

E ai, escoteiro! Viu como é fácil trabalhar com o Github? No próximo post vamos aprender como resolver conflitos de merge. Até lá!!!