Guia Completo do Git para Desenvolvedores

Git

Introdução

O Git é o sistema de controle de versão mais utilizado no mundo. Ele permite registrar alterações no código-fonte, trabalhar em equipe de forma organizada e manter um histórico completo das modificações realizadas em um projeto.

Atualmente praticamente todas as empresas de tecnologia utilizam Git em conjunto com plataformas como GitHub, GitLab ou Bitbucket.

Neste guia serão apresentados os principais conceitos e comandos utilizados diariamente por desenvolvedores.


O que é Controle de Versão?

Controle de versão é o processo de registrar alterações em arquivos ao longo do tempo.

Com Git você consegue:

  • Voltar para versões anteriores.
  • Trabalhar em equipe.
  • Criar funcionalidades isoladas.
  • Corrigir bugs sem afetar produção.
  • Manter histórico completo das alterações.

O que é uma Branch?

Uma branch é uma linha independente de desenvolvimento.

Imagine que a branch main representa a versão estável do sistema.

Ao iniciar uma nova funcionalidade você pode criar uma branch separada:

git checkout -b feature/login

Dessa forma você desenvolve sem afetar a versão principal da aplicação.

Em equipes profissionais é comum existir:

main
develop
feature/*
hotfix/*
release/*

Essa organização reduz conflitos e facilita o fluxo de entrega.


Configurando SSH

Uma das primeiras configurações recomendadas é a criação de uma chave SSH. Ela permite autenticar sua máquina sem precisar informar usuário e senha constantemente.

Gerando a chave

ssh-keygen -t rsa

O terminal solicitará:

Enter file in which to save the key
Enter passphrase
Enter same passphrase again

Caso seja uma máquina pessoal, você pode simplesmente pressionar ENTER em todas as etapas.


Obtendo a chave pública

Após a geração da chave:

cat ~/.ssh/id_rsa.pub

Copie todo o conteúdo retornado.


Configurando no GitHub

Acesse:

Settings
→ SSH and GPG Keys
→ New SSH Key

Cole a chave copiada anteriormente.

A partir desse momento sua máquina poderá autenticar utilizando SSH.


Configurando Usuário

Todo commit possui um autor.

Configure seu nome:

git config --global user.name "Seu Nome"

Configure seu e-mail:

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

Verifique:

git config --list

Clonando um Repositório

Para baixar um projeto existente:

git clone git@github.com:usuario/repositorio.git

ou

git clone https://github.com/usuario/repositorio.git

Após o clone:

cd repositorio

Verificando Alterações

Para visualizar o estado atual dos arquivos:

git status

Esse é provavelmente o comando mais utilizado do Git.

Ele mostra:

  • Arquivos modificados
  • Arquivos criados
  • Arquivos removidos
  • Arquivos preparados para commit

Adicionando Arquivos

Adicionar todos os arquivos modificados:

git add .

Adicionar apenas um arquivo:

git add src/app.ts

O comando add move as alterações para a área de staging.


Criando um Commit

Após selecionar os arquivos:

git commit -m "Adiciona tela de login"

Boas mensagens de commit:

feat: adiciona autenticação JWT
fix: corrige erro de validação
refactor: simplifica camada de serviços
docs: atualiza documentação

Enviando Alterações

Enviar para o servidor remoto:

git push

Primeiro push de uma branch:

git push -u origin feature/login

Atualizando o Projeto

Baixar alterações do servidor:

git pull

Buscar sem aplicar:

git fetch

Mudando de Branch

Listar branches:

git branch

Trocar de branch:

git checkout develop

Criar e trocar simultaneamente:

git checkout -b feature/dashboard

Ou utilizando a sintaxe moderna:

git switch -c feature/dashboard

Visualizando Histórico

git log

Versão resumida:

git log --oneline

Exemplo:

c0a12b4 feat: login social
9d1a32f fix: validação de formulário
7f2e4ab docs: atualiza README

Desfazendo Alterações

Descartar alterações locais:

git restore .

Remover um arquivo do staging:

git restore --staged arquivo.ts

Voltar para um commit específico:

git reset --hard HASH

Utilize esse comando com cuidado.


Fluxo Mais Comum do Dia a Dia

git pull
 
git checkout -b feature/nova-feature
 
# desenvolvimento...
 
git add .
 
git commit -m "feat: nova funcionalidade"
 
git push -u origin feature/nova-feature

Depois basta abrir um Pull Request para revisão.


Conclusão

Dominar Git é obrigatório para qualquer desenvolvedor profissional. Embora existam dezenas de comandos avançados, a maior parte do trabalho diário pode ser realizada dominando os conceitos de branches, commits, pull, push e merge.

Quanto maior o projeto e a equipe, mais importante se torna uma boa estratégia de versionamento. Investir tempo aprendendo Git traz ganhos diretos em produtividade, colaboração e segurança durante o desenvolvimento.