git-reconciler

Sincroniza tu branch de trabajo con main/master de forma segura, detectando conflictos antes de mergear.


Triggers

Frases que activan el skill
“sync con main”
“actualizar branch”
“traer cambios de main”
“reconciliar”
“merge main”
“hay conflictos?”

¿Qué hace?

  1. Verifica estado actual (cambios sin commitear)
  2. Identifica branch principal (main o master)
  3. Fetch de cambios remotos sin aplicar
  4. Analiza divergencia entre branches
  5. Detecta conflictos potenciales antes de mergear
  6. Sugiere estrategia (merge vs rebase)
  7. Ejecuta sincronización con confirmación
  8. Maneja conflictos si ocurren

Análisis de divergencia

El skill interpreta la divergencia:

Resultado Significado
0 0 Sincronizados, nada que hacer
5 0 Main tiene 5 commits nuevos, tu branch está atrás
0 3 Tu branch tiene 3 commits, main no tiene nuevos
5 3 Divergencia: main tiene 5 nuevos, tu branch tiene 3

Estrategias

Merge (recomendado para branches compartidos)

git merge origin/main
  • Preserva historial completo
  • Crea commit de merge
  • Seguro para branches con colaboradores

Rebase (recomendado para branches personales)

git rebase origin/main
  • Historial lineal
  • Requiere force push si ya pusheaste
  • Mejor para branches limpios antes de PR

Detección de conflictos

El skill compara archivos modificados en ambos branches. Si hay archivos en común, hay riesgo de conflicto.

Tu branch modificó: src/utils/api.ts, src/components/Auth.tsx
Main modificó: src/utils/api.ts, src/components/Header.tsx

⚠️ Riesgo de conflicto en: src/utils/api.ts

Soporte para Worktrees

Si estás trabajando en un worktree (.worktrees/):

  • Fetch funciona normal desde el worktree
  • Merge/rebase normal
  • El skill detecta automáticamente el contexto

Ejemplo de uso

Sincronizar feature branch

Usuario: "Necesito actualizar mi branch con main"

Tu branch `feature/auth` tiene 5 commits propios y main tiene 3 commits nuevos.

Archivos modificados en main: src/config.ts, README.md
Archivos modificados en tu branch: 3 archivos en src/components

No hay archivos en común, bajo riesgo de conflictos.

Estrategia recomendada: MERGE (tu branch ya fue pusheado)
¿Confirmás que haga merge de origin/main? [y/n]

Detectar conflictos

Usuario: "¿Hay conflictos con main?"

Hay riesgo de conflicto en:
- src/utils/api.ts (modificado en ambos branches)

Archivos solo en main: src/components/Header.tsx
Archivos solo en tu branch: src/components/Auth.tsx

Te recomiendo hacer merge ahora para resolver el conflicto antes de que crezca.

Comandos de referencia

Acción Comando
Ver estado git status
Fetch sin merge git fetch origin main
Ver divergencia git rev-list --left-right --count origin/main...HEAD
Commits pendientes git log HEAD..origin/main --oneline
Merge git merge origin/main
Rebase git rebase origin/main
Abortar merge git merge --abort
Listar conflictos git diff --name-only --diff-filter=U

Herramientas disponibles

  • Bash - Ejecutar comandos git
  • Read - Leer archivos con conflictos