Guia Completo do Git para Desenvolvedores
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/loginDessa 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 rsaO terminal solicitará:
Enter file in which to save the key
Enter passphrase
Enter same passphrase againCaso 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.pubCopie todo o conteúdo retornado.
Configurando no GitHub
Acesse:
Settings
→ SSH and GPG Keys
→ New SSH KeyCole 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 --listClonando um Repositório
Para baixar um projeto existente:
git clone git@github.com:usuario/repositorio.gitou
git clone https://github.com/usuario/repositorio.gitApós o clone:
cd repositorioVerificando Alterações
Para visualizar o estado atual dos arquivos:
git statusEsse é 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.tsO 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çãoEnviando Alterações
Enviar para o servidor remoto:
git pushPrimeiro push de uma branch:
git push -u origin feature/loginAtualizando o Projeto
Baixar alterações do servidor:
git pullBuscar sem aplicar:
git fetchMudando de Branch
Listar branches:
git branchTrocar de branch:
git checkout developCriar e trocar simultaneamente:
git checkout -b feature/dashboardOu utilizando a sintaxe moderna:
git switch -c feature/dashboardVisualizando Histórico
git logVersão resumida:
git log --onelineExemplo:
c0a12b4 feat: login social
9d1a32f fix: validação de formulário
7f2e4ab docs: atualiza READMEDesfazendo Alterações
Descartar alterações locais:
git restore .Remover um arquivo do staging:
git restore --staged arquivo.tsVoltar para um commit específico:
git reset --hard HASHUtilize 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-featureDepois 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.