Git como histórico auditável de decisões
Versionamento não é backup manual de arquivos final_v2_definitivo.zip. Git registra snapshots com autor, data e mensagem — base para colaboração, revisão e rollback preciso em equipes profissionais.
Conceitos
- Repositório: projeto com histórico (
.git). - Commit: snapshot com mensagem explicando o porquê.
- Branch: linha de trabalho isolada.
- Merge / Pull Request: integração revisada.
- Remote: GitHub, GitLab, etc.
Fluxo diário
git status
git diff
git add src/calculadora.js
git commit -m "feat: aplicar desconto acima de 200 horas"
git push origin feature/orcamento
Mensagens no imperativo, escopo claro. Corpo do commit pode detalhar motivação e impacto.
Branches e Pull Request
- Crie branch a partir de
mainatualizada. - Commits pequenos e focados.
- Push e abra PR com descrição: o quê, por quê, como testar.
- Review (humano) antes de merge.
.gitignore essencial
node_modules/
.env
dist/
.DS_Store
*.log
Nunca versionar segredos. Se vazou, rotacionar credencial — histórico Git retém para sempre.
GitHub Pages
- Repo público com
index.htmlna branch publicada. - Settings → Pages → branch
main, pasta root. - URL:
https://usuario.github.io/repo/
Publique o projeto da semana 3 como portfolio inicial.
Conflitos de merge
Ocorrem quando duas branches alteram mesma região. Git marca conflito; você edita manualmente, escolhe versão correta, commita resolução. Comunicação com colega evita retrabalho.
Configuração inicial (uma vez por máquina)
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
git config --global init.defaultBranch main
git config --global pull.rebase false # ou true, se a equipe adotar rebase
Email deve bater com conta GitHub para contribuições aparecerem no perfil.
Primeiro repositório do zero
cd ~/estudos/dev-journal/orcamento
git init
git add .
git commit -m "feat: calculadora de orçamento inicial"
git branch -M main
git remote add origin git@github.com:SEU_USUARIO/orcamento.git
git push -u origin main
Use SSH ou HTTPS conforme configurou. Se push falhar, verifique autenticação (token pessoal ou chave SSH).
Desfazer sem pânico
git restore arquivo.js— descarta alterações não commitadas no arquivo.git restore --staged arquivo.js— tira do stage, mantém alteração no working tree.git commit --amend— corrige último commit (só se ainda não fez push, ou em branch pessoal).git revert HASH— cria commit que desfaz outro — seguro em main compartilhada.
Evite git reset --hard em branch compartilhada — apaga histórico local de forma irreversível.
Convenção de commits (Conventional Commits)
Prefixos comuns: feat: nova funcionalidade, fix: correção, docs: documentação, refactor: sem mudar comportamento, test: testes. Facilita changelog automático e leitura do histórico.
Colaboração simulada (exercício solo)
- Crie branch
feature/desconto-visual. - Adicione linha no README explicando regra de desconto.
- Commit + push + abra PR no GitHub (mesmo sendo repo pessoal).
- Revise diff linha a linha como se fosse revisor — comentário mental: “entendi o porquê?”.
- Merge e delete branch remota.
Esse ritual prepara para times reais onde PR é gate de qualidade, não burocracia.
Deploy e README de portfolio
README deve conter: problema resolvido, stack, como rodar localmente, link da demo (Pages), captura de tela. Recrutadores abrem GitHub antes do currículo — repositório vazio ou sem instruções perde oportunidade.
Inspecionar histórico: log e diff
Git não serve só para salvar — serve para entender mudanças:
git log --oneline -10 # últimos 10 commits resumidos
git show HEAD # detalhe do último commit
git diff # alterações ainda não commitadas
git diff main..feature/orcamento # diferença entre branches
Antes de commitar, rode git diff e leia linha a linha — há debug esquecido? console.log? arquivo .env? Esse hábito evita vergonha em PR.
Clonar e contribuir em projeto existente
git clone git@github.com:org/projeto.git
cd projeto
git checkout -b fix/readme-typo
# editar, testar
git add README.md
git commit -m "docs: corrigir typo na instalação"
git push origin fix/readme-typo
Contribuições pequenas (documentação, testes) são porta de entrada em open source — mesmo fluxo de empresa, escala menor.
Para aprofundar na web
Para entender melhor este tema, pesquise por:
- "Git tutorial iniciante Pro Git book" — referência gratuita completa
- "Conventional Commits especificação" — padronizar mensagens de commit
- "GitHub Pull Request como abrir" — fluxo de revisão em equipe
- "GitHub Pages publicar site estático" — deploy do projeto da semana 3
- "gitignore Node.js template" — o que nunca versionar
Crie repo real, faça três commits atômicos e abra PR mesmo solo — prática do fluxo profissional.
Atividades
Principal benefício de branches feature:
Ver resposta
Resposta correta: B) Isolar trabalho sem destabilizar main
Integração controlada via PR mantém main estável.
.env no .gitignore porque:
Ver resposta
Resposta correta: B) Contém segredos específicos do ambiente
Credenciais versionadas vazam permanentemente no histórico.
Descreva fluxo de PR da branch até produção.
Ver resposta
Branch → commits → push → PR → review/CI → merge main → pipeline deploy (se houver).
0 comments