git-workflow-and-versioning
Organiza o trabalho de código usando o Git. Ajuda a salvar o progresso, gerenciar diferentes versões e evitar conflitos ao trabalhar em equipe.
O que ela faz
Esta ferramenta ajuda a organizar o código que você e a IA criam. Ela ensina a salvar o progresso frequentemente (commits), a trabalhar em partes separadas do código (branches) e a dar nomes claros a essas partes, garantindo que tudo fique organizado e fácil de consertar se algo der errado.
Quando usar
- ✓Sempre que você ou a IA fizerem qualquer alteração no código.
- ✓Ao salvar o progresso (commit) ou criar uma nova linha de trabalho (branch).
- ✓Quando precisar organizar várias tarefas diferentes ao mesmo tempo.
Exemplo do que pedir para a IA
“Como posso salvar meu trabalho atual em uma nova 'versão' organizada?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A IA sugere salvar pequenas partes do trabalho frequentemente, como se fossem 'pontos de salvamento'. Cada salvamento (commit) deve fazer apenas uma coisa lógica e ter uma mensagem explicando o porquê foi feito, não apenas o quê.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add addyosmani/agent-skills --skill git-workflow-and-versioningOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/git-workflow-and-versioning/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Fluxo de Trabalho e Versionamento com Git
Visão Geral
O Git é sua rede de segurança. Trate commits como pontos de salvamento, branches como "caixas de areia" (sandboxes) e o histórico como documentação. Com agentes de IA gerando código em alta velocidade, o controle de versão disciplinado é o mecanismo que mantém as alterações gerenciáveis, revisáveis e reversíveis.
Quando Usar
Sempre. Toda alteração de código passa pelo Git.
Princípios Fundamentais
Desenvolvimento Baseado em Trunk (Recomendado)
Mantenha o main sempre pronto para deploy. Trabalhe em branches de funcionalidade de curta duração que façam o merge de volta em 1-3 dias. Branches de desenvolvimento de longa duração são custos ocultos — eles divergem, criam conflitos de merge e atrasam a integração. Pesquisas da DORA mostram consistentemente que o desenvolvimento baseado em trunk se correlaciona com equipes de engenharia de alto desempenho.
main ──●──●──●──●──●──●──●──●──●── (always deployable)
╲ ╱ ╲ ╱
●──●─╱ ●──╱ ← short-lived feature branches (1-3 days)
Este é o padrão recomendado. Equipes que usam gitflow ou branches de longa duração podem adaptar os princípios (commits atômicos, pequenas alterações, mensagens descritivas) ao seu modelo de branching — a disciplina de commit importa mais do que a estratégia de branching específica.
- Branches de desenvolvimento são custos. Todo dia que um branch vive, ele acumula risco de merge.
- Branches de release são aceitáveis. Quando você precisa estabilizar um release enquanto o branch principal avança.
- Feature flags > branches longos. Prefira fazer deploy de trabalho incompleto por trás de flags em vez de mantê-lo em um branch por semanas.
1. Commite Cedo, Commite Frequentemente
Cada incremento bem-sucedido ganha seu próprio commit. Não acumule grandes alterações não commitadas.
Work pattern:
Implement slice → Test → Verify → Commit → Next slice
Not this:
Implement everything → Hope it works → Giant commit
Commits são pontos de salvamento. Se a próxima alteração quebrar algo, você pode reverter para o último estado conhecido e bom instantaneamente.
2. Commits Atômicos
Cada commit faz uma coisa lógica:
# Good: Each commit is self-contained
git log --oneline
a1b2c3d Add task creation endpoint with validation
d4e5f6g Add task creation form component
h7i8j9k Connect form to API and add loading state
m1n2o3p Add task creation tests (unit + integration)
# Bad: Everything mixed together
git log --oneline
x1y2z3a Add task feature, fix sidebar, update deps, refactor utils
3. Mensagens Descritivas
Mensagens de commit explicam o porquê, não apenas o o quê:
# Good: Explains intent
feat: add email validation to registration endpoint
Prevents invalid email formats from reaching the database.
Uses Zod schema validation at the route handler level,
consistent with existing validation patterns in auth.ts.
# Bad: Describes what's obvious from the diff
update auth.ts
Formato:
<type>: <short description>
<optional body explaining why, not what>
Tipos:
feat— Nova funcionalidadefix— Correção de bugrefactor— Alteração de código que não corrige um bug nem adiciona uma funcionalidadetest— Adicionando ou atualizando testesdocs— Apenas documentaçãochore— Ferramentas, dependências, configuração
4. Mantenha as Preocupações Separadas
Não combine alterações de formatação com alterações de comportamento. Não combine refatorações com funcionalidades. Cada tipo de alteração deve ser um commit separado — e idealmente um PR separado:
# Good: Separate concerns
git commit -m "refactor: extract validation logic to shared utility"
git commit -m "feat: add phone number validation to registration"
# Bad: Mixed concerns
git commit -m "refactor validation and add phone number field"
Separe refatoração de trabalho de funcionalidade. Uma alteração de refatoração e uma alteração de funcionalidade são duas alterações diferentes — envie-as separadamente. Isso torna cada alteração mais fácil de revisar, reverter e entender no histórico. Pequenas limpezas (renomear uma variável) podem ser incluídas em um commit de funcionalidade a critério do revisor.
5. Dimensionamento das Alterações
Mire em cerca de 100 linhas por commit/PR. Alterações acima de cerca de 1000 linhas devem ser divididas. Veja as estratégias de divisão em code-review-and-quality para saber como quebrar grandes alterações.
~100 lines → Easy to review, easy to revert
~300 lines → Acceptable for a single logical change
~1000 lines → Split into smaller changes
Estratégia de Branching
Branches de Funcionalidade
main (always deployable)
│
├── feature/task-creation ← One feature per branch
├── feature/user-settings ← Parallel work
└── fix/duplicate-tasks ← Bug fixes
- Faça o branch a partir do
main(ou do branch padrão da equipe)
…
Perguntas frequentes
O que é um 'commit'?
Um 'commit' é como um ponto de salvamento no seu projeto. Ele registra um conjunto de alterações feitas no código, permitindo que você volte para essa versão se precisar.
O que é um 'branch'?
Um 'branch' (ramo) é como uma cópia separada do seu projeto onde você pode trabalhar em novas ideias ou correções sem afetar a versão principal. É um espaço seguro para experimentar.
Por que é importante salvar o trabalho frequentemente?
Salvar frequentemente (commits atômicos) evita que você perca trabalho e facilita a identificação e correção de problemas. Se algo quebrar, você pode facilmente voltar para um ponto de salvamento anterior que funcionava.
Detalhes
Descrição original do autor
Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, splitting uncommitted work in a messy working tree into clean atomic commits, opening or reviewing a pull request (PR), pushing to a remote, or when you need to organize work across multiple parallel streams. Use when cutting a release, choosing a semantic version bump, tagging,
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #352
- Licença
- MIT
- Atualizada em
- 13/10/2026
Comentários
- …
Mais skills deste repositório
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
browser-testing-with-devtools
Ajuda seu agente a testar código diretamente em navegadores reais. É útil para verificar como algo funciona no ambiente onde será usado, encontrando erros e problemas de performance.
addyosmani/agent-skills
ci-cd-and-automation
Ensina seu agente de IA a automatizar tarefas repetitivas e colocar projetos no ar e cuidar da infraestrutura.
addyosmani/agent-skills
code-review-and-quality
Realiza revisões de código detalhadas em várias frentes. É útil antes de juntar novas mudanças para garantir a qualidade e evitar problemas futuros.
addyosmani/agent-skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC