Git e Github — Por que e como usar? — Parte 2

Como o Git e o Github podem resolver seus problemas e otimizar seu tempo? Maurício Fernandes, Software Developer da Netshoes, explica!

NSTech
NSTech
8 min readMar 1, 2019

--

  • Trabalhando com o Github

Na primeira parte aprendemos o que é o git e github, em que situação é interessante usarmos e aprendemos como trabalhar com o git.

Agora, nesta continuação, vamos aprender como trabalhar utilizando o git em conjunto como github.

Hospedando nossos projetos no GitHub

image credit : github

Já temos uma conta no Github, sendo assim, vamos ter que criar um novo repositório no Github que será onde iremos hospedar nosso projeto.

Após realizar o Login em sua conta, no site do github mesmo procure o botão “New repository”.

Na nova tela que se abrir vamos dar um nome ao nosso repository, iremos chamar de “Meu primeiro projeto GitHub” e podemos clicar no botão “Create repository”.

Pronto repositório criado!!!

Agora vamos conectar o nosso repositório local, com o nosso repositório do github que acabamos de criar e podemos fazer isso através de um comando git.

Então, abra seu terminal novamente ou seu git-bash, entre na pasta em que está o “OlaMundo” e digite o comando a seguir.

git remote add origin <url do seu repositorio no git>

Legal!! Dessa forma nosso repositório local foi conectado ao nosso no github.

Então vamos enviar nossos arquivos para o github, através do seguinte comando:

git push origin master

O git irá pedir seu usuário e sua senha do Github, após digitar irá começar o upload.

Sucesso!!! nosso arquivo está hospedado no GitHub!!!

Agora quando precisar baixar seu projeto basta ir no github clicar em “Clone or download”.

Copiar a URL que aparecer, através do terminal ou git-bash, entrar em um pasta desejada e digitar o comando:

git clone <url>

Dessa forma o git irá fazer o download do projeto para o seu computador. Esse comando pode ser utilizado tanto nos seus repositórios, quanto nos repositórios públicos de outras pessoas.

Trabalhando com Branchs

image credit: moziru

Uma outra funcionalidade interessante do git são os ramos ou “Branchs”.

Branchs são como ambientes de desenvolvimento diferentes para o mesmo projeto ou arquivo.

Por padrão, no git, temos uma única branch chamada master

Master é, por padrão, a branch principal, dentro dela sempre deve estar o último conteúdo confiável do projeto ou arquivo, pois uma vez na master, essas alterações podem ser disponibilizadas ao público a qualquer momento.

É uma boa prática criar uma nova branch, sempre que trabalharmos em uma nova atividade dentro do projeto, comitar todas as novas versões dentro dessa nova branch e, ao final da atividade, realizar um pedido para adicionar as novas alterações dessa branch na master, esse pedido passará por uma revisão e, só após a revisão, poderemos adicionar nossas alterações a master.

image credits : github

Pode parecer complicado, mas verá que na verdade é bem simples.

Até o momento, todas as alterações que realizamos no OlaMundo foram feitas diretamente na master, o que é uma péssima prática.

Por exemplo, caso você e um amigo estivessem trabalhando no OlaMundo, você — assim como foi feito — deveria escrever “Olá mundo” no conteúdo do arquivo e seu amigo na linha de baixo deveria escrever o conteúdo do arquivo em inglês, mas imagine que você cometeu um erro e escreveu “Cola mundo” e comitou a alteração na master…

Por estar na master, esse erro poderá ser disponibilizado ao público a qualquer momento e, como se isso já não fosse ruim, quando seu amigo realizar a parte dele e passar o conteúdo da master para inglês, ele irá passar “Cola mundo” e teremos “Glue World” no lugar de um “Hello World”.

No fluxo correto, esses erros deveriam ser pegos na revisão antes de irem parar na master. Esse é um exemplo bem simples, mas nos mostra como devemos ser cautelosos com o conteúdo da master, pois além de nos prejudicarmos podemos prejudicar o trabalho de outros.

Sendo assim, vamos fazer direito de primeira, para fazer menos vezes.

Vamos lá!

Dessa vez, vamos adicionar um “Hello World” uma linha abaixo no arquivo OlaMundo, mas para não comitar na master, antes vamos criar uma nova branch.

git branch <name>

Para criar nossa branch devemos dar um nome ela. Vamos chamá-la de “adiciona-hello-world”. O comando deverá ficar assim git branch adiciona-hello-world

Agora vamos verificar nossas branchs ativas através do comando:

git branch

Vamos receber uma resposta assim:

Legal, branch foi criada com sucesso. Mas repare que há um asterisco na master, significa que ainda estamos utilizando a master, então vamos alterar para nossa nova branch utilizando o comando:

git checkout <name>

Através do git checkout podemos escolher qual branch queremos trabalhar, nesse caso queremos trabalhar na branch. “adiciona-hello-world”, então o comando ficará assim: git checkout adiciona-hello-world

Já recebemos que agora estamos na branch “adiciona-hello-world”, próxima vez que utilizar o comando git branch o asterisco estará nessa branch.

Mas tem muitos passos para uma simples tarefa…

Temos que criar a branch, verificar se foi criado e alterar para a branch certa.

Então vamos simplificar! Podemos fazer isso tudo com esse único comando:

git checkout -b <name>

Dessa forma, se utilizarmos o comando git checkout -b adiciona-hello-worldestaremos criando uma nova branch e alterando para ela de uma vez. Mais simples, não?

Vamos agora realizar nossas alterações. Finalmente adicione “Hello World” na linha abaixo no arquivo OlaMundo.

Salve o arquivo e vamos criar uma nova versão assim como das últimas vezes.

git status
git add .
git commit -m "Adiciona hello world ao arquivo ola mundo"

Sucesso, enviamos as alterações para nossa branch e agora podemos enviar as informações salvas na branch para o Github.

Até o momento, só utilizamos o github com nossa branch master através do comandogit push origin master. Isso significa que estamos enviando as alterações de nosso repositório de origem para a master no Github. Como dessa vez queremos utilizar nossa nova branch, o comando ficará assim:

git push origin adiciona-hello-world

Serão pedidos seu usuário e senha do github, após isso teremos uma resposta parecida com essa:

Parabéns, conseguimos hospedar o nosso código no github em nossa própria branch.

Nesse momento, se entrar no Github em nosso repositório, poderemos ver que temos 2 branchs.

Ótimo, agora nossa atividade está terminada e já podemos adicionar essas alterações a master sem culpa. E podemos fazer isso através de um pull-request.

Pull Request é uma “Requisição de empurrão”. Através dele pedimos para fundir o conteúdo de uma branch com outra

Novamente na tela no nosso repositório do github, na opção branchs,clicamos na opção “New Pull request” (ao lado da nossa branch).

Seremos direcionados a uma tela que compara o conteúdo de uma branch com a outra e que nos dará a opção de alterar o nome do pull request e adicionar uma descrição.

No momento apenas ignore as opções e clique no botão “create pull request”.

Página do pull request

Na tela em que aparecer, o github irá verificar nossas duas branchs e nos avisar caso haja algum conflito entre as duas, para que possamos corrigir. Caso contrário nos dará permissão para fundir (merge) as duas branchs. É nesse momento que temos a revisão (code review).

O Code review é uma boa prática no desenvolvimento de software. Ao criar um pull request, enviamos a URL para outros desenvolvedores, para que realizem uma revisão. Se estiver tudo certo, eles aprovam o pull request; caso contrário eles realizam um comentário em uma parte do código para ser corrigido, podendo só realizar o merge quando o pull request tiver um certo número de aprovações, que é determinado pela equipe.

Isso ajuda a evitar bugs e outras más práticas de desenvolvimento.

Vamos imaginar que já recebemos o número necessário de aprovações e vamos clicar em “merge pull request” e, em seguida, confirme.

Sucesso! Parabéns, suas alterações foram enviadas para a master e, como não precisamos mais da branch “adiciona-hello-world”, podemos deletar na mesma tela, pelo botão “Delete branch”.

Agora por último, vamos voltar para a master com o comando git checkout master e vamos dar uma olhada no nosso arquivo OlaMundo.

Estranho, ao voltar para a master o nosso arquivo não está com o hello world; isso não parece bom, será um erro?

Não se preocupe, isso acontece porque ainda não atualizamos nossa master local depois do merge, então ela ainda está desatualizada, mas podemos atualizar facilmente como comando abaixo:

git pull origin master

Dessa forma, estamos atualizando nosso repositório local com o conteúdo da nossa master. se quisermos o conteúdo de outra branch,basta alterar de “master” para o nome da outra branch.

É recomendado sempre deixar sua branch atualizada. Caso outra pessoa realizar uma alteração na master e você não atualizar, isso irá gerar vários conflitos quando tentar dar “merge” nas suas alterações com a master, pois haverá informações na master que não estarão na sua.

Conclusão

Parabéns, agora que já podemos utilizar o git e subir nossos arquivos no github, não teremos mais problemas de perder arquivos, ou de trabalhar com outra pessoa em um mesmo arquivo ou projeto. De fato ainda há muito para se aprender, problemas para enfrentar mas, com nosso conhecimento atual, já podemos trilhar nosso próprio caminho. Desejo boa sorte a todos e espero ter ajudado!

Até a próxima.

--

--

NSTech
NSTech
Editor for

Aqui nosso time de especialistas compartilhará um pouco da nossa paixão por tech e também da nossa tecnologia open source.