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

git-workflow

Define fluxos de trabalho Git eficientes, incluindo estratégias de branch, convenções de commit e resolução de conflitos.

O que ela faz

Este guia ensina as melhores práticas para usar o Git, um sistema de controle de versão. Ele explica como organizar o histórico do seu código, escrever mensagens claras para suas alterações e escolher a melhor forma de trabalhar em equipe.

Quando usar

  • ✓Ao iniciar um novo projeto e definir como o código será gerenciado.
  • ✓Ao decidir qual estratégia de organização de código (como GitHub Flow ou GitFlow) usar.
  • ✓Ao escrever mensagens para descrever as alterações feitas no código.

Exemplo do que pedir para a IA

“Como posso organizar meu projeto usando o Git Flow?”

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/affaan-m/ECC/blob/main/pi/core/skills/git-workflow/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/pi/core/skills/git-workflow/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele oferece diferentes modelos de organização, como o GitHub Flow (simples e bom para a maioria) e o GitFlow (mais complexo, para projetos com lançamentos planejados). Também ensina a escrever mensagens de 'commit' seguindo um padrão claro.

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 affaan-m/ECC --skill git-workflow

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/git-workflow/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.

Padrões de Fluxo de Trabalho do Git

Melhores práticas para controle de versão do Git, estratégias de ramificação e desenvolvimento colaborativo.

Quando Ativar

  • Configurando o fluxo de trabalho do Git para um novo projeto
  • Decidindo sobre a estratégia de ramificação (GitFlow, baseado em trunk, fluxo do GitHub)
  • Escrevendo mensagens de commit e descrições de PR
  • Resolvendo conflitos de merge
  • Gerenciando releases e tags de versão
  • Integrando novos membros da equipe às práticas do Git

Estratégias de Ramificação

Fluxo do GitHub (Simples, Recomendado para a Maioria)

Melhor para implantação contínua e equipes de pequeno a médio porte.

main (protected, always deployable)
  │
  ├── feature/user-auth      → PR → merge to main
  ├── feature/payment-flow   → PR → merge to main
  └── fix/login-bug          → PR → merge to main

Regras:

  • main está sempre pronto para implantação
  • Crie branches de funcionalidade a partir de main
  • Abra um Pull Request quando estiver pronto para revisão
  • Após aprovação e passagem do CI, faça o merge para main
  • Implante imediatamente após o merge

Desenvolvimento Baseado em Trunk (Equipes de Alta Velocidade)

Melhor para equipes com CI/CD forte e flags de funcionalidade.

main (trunk)
  │
  ├── short-lived feature (1-2 days max)
  ├── short-lived feature
  └── short-lived feature

Regras:

  • Todos fazem commit no main ou em branches de vida muito curta
  • Flags de funcionalidade ocultam trabalho incompleto
  • O CI deve passar antes do merge
  • Implante várias vezes por dia

GitFlow (Complexo, Orientado por Ciclo de Lançamento)

Melhor para lançamentos agendados e projetos corporativos.

main (production releases)
  │
  └── develop (integration branch)
        │
        ├── feature/user-auth
        ├── feature/payment
        │
        ├── release/1.0.0    → merge to main and develop
        │
        └── hotfix/critical  → merge to main and develop

Regras:

  • main contém apenas código pronto para produção
  • develop é o branch de integração
  • Branches de funcionalidade a partir de develop, faça o merge de volta para develop
  • Branches de release a partir de develop, faça o merge para main e develop
  • Branches de hotfix a partir de main, faça o merge para main e develop

Quando Usar Qual

Estratégia Tamanho da Equipe Cadência de Lançamento Melhor Para
Fluxo do GitHub Qualquer Contínuo SaaS, aplicativos web, startups
Baseado em Trunk 5+ experientes Múltiplas/dia Equipes de alta velocidade, flags de funcionalidade
GitFlow 10+ Agendado Corporativo, indústrias regulamentadas

Mensagens de Commit

Formato de Commits Convencionais

<type>(<scope>): <subject>

[optional body]

[optional footer(s)]

Tipos

Tipo Usar Para Exemplo
feat Nova funcionalidade feat(auth): add OAuth2 login
fix Correção de bug fix(api): handle null response in user endpoint
docs Documentação docs(readme): update installation instructions
style Formatação, sem alteração de código style: fix indentation in login component
refactor Refatoração de código refactor(db): extract connection pool to module
test Adicionando/atualizando testes test(auth): add unit tests for token validation
chore Tarefas de manutenção chore(deps): update dependencies
perf Melhoria de performance perf(query): add index to users table
ci Alterações de CI/CD ci: add PostgreSQL service to test workflow
revert Reverter commit anterior revert: revert "feat(auth): add OAuth2 login"

Bons vs Maus Exemplos

# BAD: Vague, no context
git commit -m "fixed stuff"
git commit -m "updates"
git commit -m "WIP"

# GOOD: Clear, specific, explains why
git commit -m "fix(api): retry requests on 503 Service Unavailable

The external API occasionally returns 503 errors during peak hours.
Added exponential backoff retry logic with max 3 attempts.

Closes #123"

Modelo de Mensagem de Commit

Crie .gitmessage na raiz do repositório:

# <type>(<scope>): <subject>
# # Types: feat, fix, docs, style, refactor, test, chore, perf, ci, revert
# Scope: api, ui, db, auth, etc.
# Subject: imperative mood, no period, max 50 chars
#
# [optional body] - explain why, not what
# [optional footer] - Breaking changes, closes #issue

Habilite com: git config commit.template .gitmessage

Merge vs Rebase

Merge (Preserva o Histórico)

# Creates a merge commit
git checkout main
git merge feature/user-auth

# Result:
# *   merge commit
# |\
# | * feature commits
# |/
# * main commits

Use quando:

  • Fazer merge de branches de funcionalidade no main
  • Você quer preservar o histórico exato
  • Várias pessoas trabalharam no branch

…

Perguntas frequentes

O que é um 'commit'?

Um 'commit' é como um 'salvar' no seu projeto, registrando um conjunto de alterações feitas no código em um determinado momento.

Qual a diferença entre 'merge' e 'rebase'?

'Merge' junta o histórico de dois ramos, criando um registro de quando eles foram unidos. 'Rebase' reorganiza suas alterações para que pareçam ter sido feitas após as alterações mais recentes de outro ramo, criando um histórico mais linear.

Por que usar 'Conventional Commits'?

Ajuda a entender rapidamente o que cada alteração faz (se é uma nova funcionalidade, um conserto de erro, etc.) e facilita a automação de tarefas como a geração de notas de lançamento.

Detalhes

Descrição original do autor

Git workflow patterns including branching strategies, commit conventions, keeping history clean and readable, tidying local commits before merging, merge vs rebase, conflict resolution, and collaborative development best practices for teams of all sizes. Use when choosing a branching strategy, writing commit conventions, cleaning up history before a pull request, deciding merge versus rebase, or r

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#60
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas