configure-git-repository
关于
This skill configures a Git repository with a proper .gitignore, branch strategy, commit conventions, hooks, and remote setup for projects in R, Node.js, or Python. Use it when initializing version control for a new project or to add language-specific .gitignore files, branch protections, and commit hooks. It automates the standard setup to enforce consistent development workflows.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/configure-git-repository在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
name: configure-git-repository description: > Configura un repositorio Git con .gitignore adecuado, estrategia de ramas, convenciones de commits, hooks y configuración remota. Cubre la configuración inicial y los patrones comunes para proyectos R, Node.js y Python. Úsalo al inicializar el control de versiones para un nuevo proyecto, añadir un .gitignore para un lenguaje o framework específico, establecer protección de ramas y convenciones, o configurar hooks de commit. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: git complexity: basic language: multi tags: git, version-control, gitignore, hooks, branching locale: es source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16
Configurar Repositorio Git
Configura un repositorio Git con la configuración adecuada para el tipo de proyecto.
Cuándo Usar
- Al inicializar el control de versiones para un nuevo proyecto
- Al añadir
.gitignorepara un lenguaje o framework específico - Al establecer protección de ramas y convenciones
- Al configurar hooks de commit
Entradas
- Requerido: Directorio del proyecto
- Requerido: Tipo de proyecto (paquete R, Node.js, Python, general)
- Opcional: URL del repositorio remoto
- Opcional: Estrategia de ramas (trunk-based, Git Flow)
- Opcional: Convención de mensajes de commit
Procedimiento
Paso 1: Inicializar Repositorio
cd /path/to/project
git init
git branch -M main
Esperado: Se crea el directorio .git/. La rama predeterminada se llama main.
En caso de fallo: Si git init falla, asegúrate de que Git esté instalado (git --version). Si el directorio ya tiene un .git/, el repositorio ya está inicializado — omite este paso.
Paso 2: Crear .gitignore
Paquete R:
# R artifacts
.Rhistory
.RData
.Rproj.user/
*.Rproj
# Environment (sensitive)
.Renviron
# renv library (machine-specific)
renv/library/
renv/staging/
renv/cache/
# Build artifacts
*.tar.gz
src/*.o
src/*.so
src/*.dll
# Documentation build
docs/
inst/doc/
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
Node.js/TypeScript:
node_modules/
dist/
build/
.next/
.env
.env.local
.env.*.local
*.log
npm-debug.log*
.DS_Store
Thumbs.db
.vscode/
.idea/
coverage/
Python:
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/
.eggs/
.venv/
venv/
.env
*.log
.mypy_cache/
.pytest_cache/
htmlcov/
.coverage
.DS_Store
.idea/
.vscode/
Esperado: Se crea el archivo .gitignore con entradas apropiadas para el tipo de proyecto. Los archivos sensibles (.Renviron, .env) y los artefactos generados quedan excluidos.
En caso de fallo: Si no estás seguro de qué entradas incluir, usa gitignore.io o las plantillas de .gitignore de GitHub como punto de partida y personalízalas para el proyecto.
Paso 3: Crear Commit Inicial
git add .gitignore
git add . # Review what's being added first with git status
git commit -m "Initial project setup"
Esperado: Se crea el primer commit con el .gitignore y los archivos iniciales del proyecto. git log muestra un commit.
En caso de fallo: Si git commit falla con "nothing to commit," asegúrate de que los archivos fueron añadidos con git add. Si falla con un error de identidad del autor, establece git config user.name y git config user.email.
Paso 4: Conectar Repositorio Remoto
# Add remote
git remote add origin [email protected]:username/repo.git
# Push
git push -u origin main
Esperado: El remoto origin está configurado. git remote -v muestra las URLs de fetch y push. El commit inicial se sube al remoto.
En caso de fallo: Si el push falla con "Permission denied (publickey)," configura las claves SSH (ver setup-wsl-dev-environment). Si el remoto ya existe, actualízalo con git remote set-url origin <url>.
Paso 5: Establecer Convenciones de Ramas
Trunk-based (recomendado para equipos pequeños):
main: código listo para producción- Ramas de funcionalidad:
feature/descripcion - Corrección de errores:
fix/descripcion
# Create feature branch
git checkout -b feature/add-authentication
# After work is done, merge or create PR
git checkout main
git merge feature/add-authentication
Esperado: La convención de nombres de ramas está establecida y documentada. Los miembros del equipo saben qué prefijo usar para cada tipo de trabajo.
En caso de fallo: Si las ramas ya tienen nombres inconsistentes, renómbralas con git branch -m old-name new-name y actualiza cualquier PR abierto.
Paso 6: Configurar Convenciones de Commits
Formato de Commits Convencionales:
type(scope): description
feat: add user authentication
fix: correct calculation in weighted_mean
docs: update README installation section
test: add edge case tests for parser
refactor: extract helper function
chore: update dependencies
Esperado: La convención de mensajes de commit está documentada y acordada por el equipo. Los commits futuros siguen el formato tipo: descripción.
En caso de fallo: Si los miembros del equipo no siguen la convención, aplícala con un hook commit-msg que valide el formato (ver Paso 7).
Paso 7: Configurar Hooks Pre-Commit (Opcional)
Crear .githooks/pre-commit:
#!/bin/bash
# Run linter before commit
# For R packages
if [ -f "DESCRIPTION" ]; then
Rscript -e "lintr::lint_package()" || exit 1
fi
# For Node.js
if [ -f "package.json" ]; then
npm run lint || exit 1
fi
chmod +x .githooks/pre-commit
git config core.hooksPath .githooks
Esperado: El hook pre-commit se ejecuta automáticamente en cada git commit. Los errores de linting bloquean el commit hasta que se corrijan.
En caso de fallo: Si el hook no se ejecuta, verifica que core.hooksPath esté establecido (git config core.hooksPath) y que el archivo del hook sea ejecutable (chmod +x).
Paso 8: Crear README
# Minimal README
echo "# Project Name" > README.md
echo "" >> README.md
echo "Brief description of the project." >> README.md
git add README.md
git commit -m "Add README"
Esperado: README.md comprometido en el repositorio. El proyecto tiene una página de inicio mínima pero informativa en GitHub.
En caso de fallo: Si README.md ya existe, actualízalo en lugar de sobreescribirlo. Usa usethis::use_readme_md() en proyectos R para obtener una plantilla con insignias.
Validación
-
.gitignoreexcluye archivos sensibles y generados - Ningún dato sensible (tokens, contraseñas) en archivos rastreados
- Repositorio remoto conectado y accesible
- Convenciones de nombres de ramas documentadas
- Commit inicial creado correctamente
Errores Comunes
- Hacer commit antes del .gitignore: Añade
.gitignoreprimero. Los archivos ya rastreados no se ven afectados por entradas añadidas posteriormente al.gitignore. - Datos sensibles en el historial: Si se cometen secretos, permanecen en el historial incluso después de borrarlos. Usa
git filter-repoo BFG para limpiar. - Archivos binarios grandes: No hagas commit de binarios grandes. Usa Git LFS para archivos > 1MB.
- Fin de línea: Establece
core.autocrlf=inputen Windows/WSL para evitar problemas CRLF/LF.
Habilidades Relacionadas
commit-changes- flujo de trabajo de staging y commitmanage-git-branches- creación de ramas y convencionescreate-r-package- configuración de Git como parte de la creación de paquetes Rsetup-wsl-dev-environment- instalación de Git y claves SSHcreate-github-release- creación de releases desde el repositoriosecurity-audit-codebase- verificar secretos comprometidos
GitHub 仓库
相关推荐技能
llamaguard
其他LlamaGuard是Meta推出的7-8B参数内容审核模型,专门用于过滤LLM的输入和输出内容。它能检测六大安全风险类别(暴力/仇恨、性内容、武器、违禁品、自残、犯罪计划),准确率达94-95%。开发者可通过HuggingFace、vLLM或Sagemaker快速部署,并能与NeMo Guardrails集成实现自动化安全防护。
cost-optimization
其他这个Claude Skill帮助开发者优化云成本,通过资源调整、标记策略和预留实例来降低AWS、Azure和GCP的开支。它适用于减少云支出、分析基础设施成本或实施成本治理策略的场景。关键功能包括提供成本可视化、资源规模调整指导和定价模型优化建议。
quantizing-models-bitsandbytes
其他这个Skill使用bitsandbytes库量化大语言模型,能在GPU内存有限时通过8位或4位量化减少50-75%内存占用,同时保持精度损失最小。它支持INT8、NF4、FP4等多种量化格式,可与HuggingFace Transformers无缝集成,适用于需要部署更大模型或加速推理的场景。还提供QLoRA训练和8位优化器支持,让开发者能轻松实现高效模型压缩。
dispatching-parallel-agents
其他该Skill用于并行处理3个以上无依赖关系的独立故障,可为每个问题域分派专属Claude代理同时执行调查修复。它通过并发处理多个独立问题显著提升故障排查效率,特别适用于测试文件、子系统等无共享状态的场景。
