Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)107 mil · #352

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

https://github.com/addyosmani/agent-skills/blob/main/skills/git-workflow-and-versioning/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/addyosmani/agent-skills/blob/main/skills/git-workflow-and-versioning/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-versioning

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/git-workflow-and-versioning/SKILL.md -o SKILL.md
Conteú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 funcionalidade
  • fix — Correção de bug
  • refactor — Alteração de código que não corrige um bug nem adiciona uma funcionalidade
  • test — Adicionando ou atualizando testes
  • docs — Apenas documentação
  • chore — 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas