Git Merge Mastery

VerifiedCaution

Prevent and resolve common Git merge issues, especially with GitHub Pages.

Sby Skills Guide Bot
DevelopmentIntermediate
107/24/2026
Claude CodeCursorWindsurfCopilotCodex
#git-merge#github-pages#merge-conflicts#git-workflow#troubleshooting

Recommended for

Our review

Provides a systematic protocol for safely merging git branches, resolving conflicts, and fixing GitHub Pages cache issues.

Strengths

  • Prevents incomplete merges by checking differences beforehand.
  • Offers specific solutions for GitHub Pages cache persistence.
  • Includes step-by-step troubleshooting for stalled rebases.
  • Provides checklists for pre- and post-merge safety.

Limitations

  • Assumes familiarity with basic git commands.
  • The cache workaround is temporary and may not work in all cases.
  • Not a comprehensive guide for all merge scenarios.
When to use it

When managing feature branch merges, especially for GitHub Pages deployment, to ensure a clean history and avoid cache issues.

When not to use it

For simple, conflict-free merges where the default git merge behavior suffices.

Security analysis

Caution
Quality score82/100

The skill includes powerful shell commands that can modify the git repository and system processes. While they are standard git operations, incorrect usage could lead to data loss or corruption. No exfiltration or obfuscation detected.

Findings
  • Contains commands that can cause data loss if misused: git reset --hard, taskkill /f, rm -f .git/index.lock

Examples

Safe merge with conflict resolution
I'm having trouble merging my feature branch into main and it doesn't seem to include all commits. What's the safest way to do a merge?
GitHub Pages cache fix
GitHub Pages is still showing old content even after I pushed my changes. How can I force a rebuild?
Abort stuck rebase
I'm stuck in a git rebase and can't get out. How do I abort it and clean up?

🚀 Skill: Git Merge Mastery - Evitar Problemas de Merge

Objetivo

Prevenir e resolver problemas comuns de git merge, especialmente com GitHub Pages.

Problemas Comuns Identificados

  1. Merge incompleto - Commits da feature branch não chegam no main
  2. Cache do GitHub Pages - HTML antigo persiste mesmo após updates
  3. Conflitos de arquivos binários - HTML/CSS com conflitos complexos
  4. Rebase travado - Git em estado inconsistent

📋 Protocolo de Merge Seguro

1. PRÉ-MERGE (Preparação)

# Verificar diferenças entre branches
git diff main..feature/nova-feature --name-only

# Verificar histórico
git log --oneline --graph --all --decorate -10

# Ensure clean working directory
git status
git checkout .

2. MERGE CORRETO (Passo a passo)

# 1. Atualizar main
git checkout main
git pull origin main

# 2. Fazer merge explícito
git merge feature/nova-feature --no-ff -m "feat: merge completo de feature/nova-feature"

# 3. Verificar conflitos
git status

# 4. Resolver conflitos se necessário
git checkout --theirs arquivo-conflitante.html
git add arquivo-conflitante.html

# 5. Finalizar merge
git commit -m "resolve: conflitos do merge"

3. PÓS-MERGE (Validação)

# Verificar se TODOS os commits chegaram
git log --oneline -5

# Verificar arquivos específicos
git show HEAD --name-only

# Testar localmente antes do push
python -m http.server 8000  # Verificar se funciona

🎯 Solução Para GitHub Pages Cache

Quando o GitHub Pages não atualiza:

# 1. Mudar nome do arquivo principal (FORÇA rebuild)
mv docs/index.html docs/dashboard-NOVO.html

# 2. Criar redirect simples
echo "<!DOCTYPE html><html><head><meta http-equiv='refresh' content='0; URL=./dashboard-NOVO.html'></head><body>Redirecting...</body></html>" > docs/index.html

# 3. Commit e push
git add docs/index.html docs/dashboard-NOVO.html
git commit -m "fix: força rebuild GitHub Pages com redirect"
git push

# 4. Após 5min, restaurar nome original
mv docs/dashboard-NOVO.html docs/index.html
git add docs/index.html
git commit -m "fix: restaura nome original após rebuild"
git push

🔧 Troubleshooting de Estados Travados

Git em rebase/interactive mode:

# Abortar rebase
git rebase --abort

# Resetar para estado limpo
git reset --hard origin/main

# Remover locks se necessário
rm -f .git/index.lock

Processos git travados (Windows):

# Matar processos git
taskkill /f /im git*

taskkill /f /im GitHubDesktop.exe

📊 Verificação de Sucesso

Após merge, verificar:

  1. ✅ GitHub Actions passando
  2. ✅ GitHub Pages atualizado (aguardar 2-5min)
  3. ✅ Testar URL atual com Ctrl+Shift+R (hard refresh)
  4. ✅ Confirmar que todos os arquivos da feature estão no main

⚠️ Checklists de Segurança

ANTES de fazer merge:

  • [ ] Backup dos arquivos importantes
  • [ ] Verificar diferenças entre branches
  • [ ] Testar feature branch localmente
  • [ ] Coordenar com time se aplicável

APÓS merge:

  • [ ] Verificar se build passa
  • [ ] Testar produção
  • [ ] Documentar mudanças
  • [ ] Informar stakeholders

🚨 Casos Especiais

Merge de grandes refactors:

# Fazer merge gradual
git merge feature/refactor --no-commit
# Verificar arquivo por arquivo
git status
git diff --cached
# Commit apenas quando confirmado
git commit -m "feat: merge seguro de refactor grande"

Rollback seguro:

# Reverter merge específico
git revert -m 1 MERGE_COMMIT_HASH

# Ou reset hard (cuidado!)
git reset --hard COMMIT_ANTERIOR

Lembrete: Sempre prefira merge --no-ff para manter histórico claro e evitar problemas com GitHub Pages!

Related skills