Back to Skills

manage-git-branches

pjt222
Updated Yesterday
8 views
17
2
17
View on GitHub
Otherai

About

This Claude Skill helps developers manage Git branches for creating, switching, synchronizing, and cleaning up workflows. It covers naming conventions, safe branch switching with stash, upstream synchronization, and deleting merged branches. Use it when starting new features or bug fixes, switching between tasks, keeping feature branches updated, or cleaning up after merged pull requests.

Quick Install

Claude Code

Recommended
Primary
npx skills add pjt222/agent-almanac -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternative
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/manage-git-branches

Copy and paste this command in Claude Code to install this skill

Documentation


name: manage-git-branches description: > Crea, rastrea, cambia, sincroniza y limpia ramas de Git. Cubre convenciones de nombres, cambio seguro de ramas con stash, sincronización con el upstream y eliminación de ramas fusionadas. Úsalo al comenzar trabajo en una nueva funcionalidad o corrección de error, al cambiar entre tareas en distintas ramas, al mantener una rama de funcionalidad actualizada con main, o al limpiar ramas tras fusionar pull requests. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: git complexity: intermediate language: multi tags: git, branches, branching-strategy, stash, remote-tracking locale: es source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16

Gestionar Ramas Git

Crea, cambia, sincroniza y limpia ramas siguiendo convenciones de nombres consistentes.

Cuándo Usar

  • Al comenzar trabajo en una nueva funcionalidad o corrección de error
  • Al cambiar entre tareas en distintas ramas
  • Al mantener una rama de funcionalidad actualizada con main
  • Al limpiar ramas después de fusionar pull requests
  • Al listar e inspeccionar ramas

Entradas

  • Requerido: Repositorio con al menos un commit
  • Opcional: Convención de nombres de ramas (por defecto: tipo/descripcion)
  • Opcional: Rama base para nuevas ramas (por defecto: main)
  • Opcional: Nombre del remoto (por defecto: origin)

Procedimiento

Paso 1: Crear una Rama de Funcionalidad

Usa una convención de nombres consistente:

PrefijoPropósitoEjemplo
feature/Nueva funcionalidadfeature/add-weighted-mean
fix/Corrección de errorfix/null-pointer-in-parser
docs/Documentacióndocs/update-api-reference
refactor/Reestructuración de códigorefactor/extract-validation
chore/Mantenimientochore/update-dependencies
test/Adición de pruebastest/add-edge-case-coverage
# Create and switch to a new branch from main
git checkout -b feature/add-weighted-mean main

# Or using the newer switch command
git switch -c feature/add-weighted-mean main

Esperado: Se crea la nueva rama y se activa. git branch muestra la nueva rama con un asterisco.

En caso de fallo: Si la rama base no existe localmente, primero haz fetch: git fetch origin main && git checkout -b feature/name origin/main.

Paso 2: Rastrear Ramas Remotas

Configura el rastreo al subir una nueva rama por primera vez:

# Push and set upstream tracking
git push -u origin feature/add-weighted-mean

# Check tracking relationship
git branch -vv

Para hacer checkout de una rama remota creada por otra persona:

git fetch origin
git checkout feature/their-branch
# Git auto-creates a local tracking branch

Esperado: La rama local rastrea la rama remota correspondiente. git branch -vv muestra el upstream.

En caso de fallo: Si el rastreo automático falla, configúralo manualmente: git branch --set-upstream-to=origin/feature/name feature/name.

Paso 3: Cambiar de Rama de Forma Segura

Antes de cambiar, asegúrate de que el árbol de trabajo esté limpio:

# Check for uncommitted changes
git status

Si hay cambios, haz commit o guárdalos con stash:

# Option 1: Commit work in progress
git add <files>
git commit -m "wip: save progress on validation logic"

# Option 2: Stash changes temporarily
git stash push -m "validation work in progress"

# Switch branches
git checkout main

# Later, restore stashed changes
git checkout feature/add-weighted-mean
git stash pop

Listar y gestionar el stash:

# List all stashes
git stash list

# Apply a specific stash (without removing it)
git stash apply stash@{1}

# Drop a stash
git stash drop stash@{0}

Esperado: El cambio de rama tiene éxito. El árbol de trabajo refleja el estado de la rama destino. Los cambios guardados con stash son recuperables.

En caso de fallo: Si el cambio está bloqueado por cambios sin commit que serían sobreescritos, primero usa stash o haz commit. git stash no puede guardar archivos no rastreados a menos que uses git stash push -u.

Paso 4: Sincronizar con el Upstream

Mantén tu rama de funcionalidad actualizada con la rama base:

# Fetch latest changes
git fetch origin

# Rebase onto latest main (preferred — keeps linear history)
git rebase origin/main

# Or merge main into your branch (creates merge commit)
git merge origin/main

Esperado: La rama incluye los últimos cambios de main. Sin conflictos, o conflictos resueltos (ver resolve-git-conflicts).

En caso de fallo: Si el rebase genera conflictos, resuelve cada uno y ejecuta git rebase --continue. Si los conflictos son demasiado complejos, aborta con git rebase --abort e intenta git merge origin/main en su lugar.

Paso 5: Limpiar Ramas Fusionadas

Después de que los pull requests sean fusionados, elimina las ramas obsoletas:

# Delete a local branch that has been merged
git branch -d feature/add-weighted-mean

# Delete a local branch (force, even if not merged)
git branch -D feature/abandoned-experiment

# Delete a remote branch
git push origin --delete feature/add-weighted-mean

# Prune remote-tracking references for deleted remote branches
git fetch --prune

Esperado: Las ramas fusionadas se eliminan local y remotamente. git branch muestra solo las ramas activas.

En caso de fallo: git branch -d se niega a eliminar ramas no fusionadas. Si la rama fue fusionada mediante squash merge en GitHub, Git puede no reconocerla como fusionada. Usa git branch -D si tienes la certeza de que el trabajo está preservado.

Paso 6: Listar e Inspeccionar Ramas

# List local branches
git branch

# List all branches (local and remote)
git branch -a

# List branches with last commit info
git branch -v

# List branches merged into main
git branch --merged main

# List branches NOT yet merged
git branch --no-merged main

# See which remote branch each local branch tracks
git branch -vv

Esperado: Vista clara de todas las ramas, su estado y las relaciones de rastreo.

En caso de fallo: Si las ramas remotas aparecen desactualizadas, ejecuta git fetch --prune para limpiar las referencias a ramas remotas eliminadas.

Validación

  • Los nombres de las ramas siguen la convención acordada
  • Las ramas de funcionalidad se crean desde la rama base correcta
  • Las ramas locales rastrean sus contrapartes remotas
  • Las ramas fusionadas están limpias (local y remotamente)
  • El árbol de trabajo está limpio antes de cambiar de rama
  • Los cambios guardados con stash no quedan huérfanos

Errores Comunes

  • Trabajar directamente en main: Crea siempre una rama de funcionalidad. Hacer commit directamente en main dificulta la creación de PRs y la colaboración.
  • Olvidar hacer fetch antes de crear una rama: Crear una rama desde un main local desactualizado significa empezar atrasado. Siempre ejecuta git fetch origin primero.
  • Ramas de larga duración: Las ramas de funcionalidad que viven semanas acumulan conflictos de fusión. Sincroniza con frecuencia y mantén las ramas de corta duración.
  • Stashes huérfanos: git stash es almacenamiento temporal. No dependas de él para trabajo a largo plazo. Haz commit o crea una rama en su lugar.
  • Eliminar trabajo no fusionado: git branch -D es destructivo. Verifica con git log branch-name antes de forzar la eliminación.
  • No hacer prune: Las ramas remotas eliminadas en GitHub siguen apareciendo localmente hasta que ejecutas git fetch --prune.

Habilidades Relacionadas

  • commit-changes - hacer commit del trabajo en las ramas
  • create-pull-request - abrir PRs desde ramas de funcionalidad
  • resolve-git-conflicts - resolver conflictos durante la sincronización
  • configure-git-repository - configuración del repositorio y estrategia de ramas

GitHub Repository

pjt222/agent-almanac
Path: i18n/es/skills/manage-git-branches
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Related Skills

llamaguard

Other

LlamaGuard is Meta's 7-8B parameter model for moderating LLM inputs and outputs across six safety categories like violence and hate speech. It offers 94-95% accuracy and can be deployed using vLLM, Hugging Face, or Amazon SageMaker. Use this skill to easily integrate content filtering and safety guardrails into your AI applications.

View skill

cost-optimization

Other

This Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.

View skill

quantizing-models-bitsandbytes

Other

This skill quantizes LLMs to 8-bit or 4-bit precision using bitsandbytes, achieving 50-75% memory reduction with minimal accuracy loss. It's ideal for running larger models on limited GPU memory or accelerating inference, supporting formats like INT8, NF4, and FP4. The skill integrates with HuggingFace Transformers and enables QLoRA training and 8-bit optimizers.

View skill

dispatching-parallel-agents

Other

This Claude Skill dispatches multiple agents to investigate and fix 3+ independent problems concurrently. It is designed for scenarios involving unrelated failures that can be resolved without shared state or dependencies. The core capability is parallel problem-solving, assigning one agent per independent problem domain to maximize efficiency.

View skill