Git - O início e alguns macetes

Este post reúne informações que recolhi realizando estudos e praticando.
Busca responder as perguntas básicas: "O que?", "Por que?", e "Como?"

Tópicos do post

Busca responder algumas perguntas como:

O que é Git?

É um sistema de controle de versões, em outras palavras essa ferramenta possibilita o controle de diferentes versões de um código substituindo os antigos arquivos: v0.0.1.zip 😂

Existem diversas plataformas que disponibilizam esse serviço e algumas das mais famosas são: Github, GitLab e Bitbucket.

Como escolher? Analise baseado nas suas necessidades, veja pontos como: APIs, plugins, integrações, preço, armazenamento, segurança, entre outros.

Se quiser adentrar nas comparações veja esse artigo do Stackshare que contém diversos detalhes: Bitbucket vs GitHub vs GitLab.

Por que eu deveria usar versionamento?

Você deve estar se perguntando:

Trabalhar em equipe num mesmo código é sempre difícil, frequentemente necessário e caso você esteja passando por isso o Git permite:

Fora o uso para desenvolvimento de software, existem repositórios que funcionam como livros, diários, lista de links úteis para comunidade, fórum de vagas de emprego, entre outras possibilidades.

Como funciona o Git?

Pra explicar esse tópico, vamos recorrer a um apelo visual.
Veja a imagem abaixo e não se preocupe se não entender nada:

Exemplo de criação de feature branch

Imagine que você iniciou seu projeto e está programando. Esse código base e que provavelmente está em produção e é estável, é sua branch principal ou master.

De uma maneira simplista você pode imaginar que a branch é uma linha do tempo e é dividida em commits.

Os commits você pode considerar como checkpoints. Se fosse um jogo, você passaria uma fase e salvaria. No nosso caso, como é código, você fará suas alterações e salvará.

Agora vem um problema. Depois do seu 4º commit (id a056aff na imagem), você precisará desenvolver uma funcionalidade grande, que altera diversos arquivos e corre risco de quebrar sua aplicação. O que você faz?

Cria uma nova branch! E na nossa imagem ela se chama feature-branch.
A partir daquele 4º commit (checkpoint) é possível criar uma nova linha do tempo e desenvolver nela sem alterar a master.

Após o desenvolvimento e o teste dessa nova funcionalidade, você pode mesclar (merge) o código novo (feature-branch) no antigo (master) de uma vez e em segurança.

Agora imagine o sofrimento de não trabalhar com Git e tentar alterar um arquivo ao mesmo tempo que um colega, você nas linhas 100-120, ele nas linhas 33-54 e depois os dois nas linhas 70-87. Salvando um em cima do outro sem parar. 🤯

Git na prática com Github

Já respondemos as perguntas “Porquê?”, “O que?” e “Como?”, então vamos seguir alguns links que vão te ajudar a colocar a mão na massa.

Depois de ler estes dois artigos, você imagina que existam outras plataformas que trabalham com Git como sistema de controle de versões.
Dentre as alternativas mais famosas ao Github, temos: Gitlab e Bitbucket, você pode inclusive conferir outras alternativas nesta página da stackshare.

*[code review]: Revisão do código por diversas pessoas.