MCP HubMCP Hub
Retour aux compétences

commit-changes

pjt222
Mis à jour Yesterday
2 vues
17
2
17
Voir sur GitHub
Documentationgeneral

À propos

Cette Compétence Claude gère la mise en zone de préparation (staging), la validation (committing) et la modification (amending) des changements Git en utilisant les Conventional Commits. Elle permet la mise en zone sélective, la création de messages de validation descriptifs via HEREDOC et la validation de l'historique des commits. Utilisez-la pour sauvegarder des unités de travail logiques, créer des commits bien structurés ou modifier des changements récents dans votre flux de travail de contrôle de version.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add pjt222/agent-almanac -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternatif
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/commit-changes

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation


name: commit-changes description: > 暂存、提交和修改变更,使用规范化提交消息。涵盖审查变更、选择性暂存、 使用 HEREDOC 格式编写描述性提交消息,以及验证提交历史。适用于将逻辑工作 单元保存到版本控制、创建带有规范化消息的提交、修改最近的提交,或在提交 前审查暂存的变更。 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, commit, staging, conventional-commits, version-control locale: zh-CN source_locale: en source_commit: 6f65f316 translator: claude translation_date: "2026-03-17"

提交变更

选择性暂存文件,编写清晰的提交消息,并验证提交历史。

适用场景

  • 将逻辑工作单元保存到版本控制
  • 创建带有描述性规范化消息的提交
  • 修改最近的提交(消息或内容)
  • 在提交之前审查将被提交的内容

输入

  • 必需:一个或多个已更改的文件用于提交
  • 可选:提交消息(如未提供将自动起草)
  • 可选:是否修改上一次提交
  • 可选:共同作者归属

步骤

第 1 步:审查当前变更

检查工作树状态并查看差异:

# See which files are modified, staged, or untracked
git status

# See unstaged changes
git diff

# See staged changes
git diff --staged

预期结果: 清晰了解所有已修改、已暂存和未跟踪的文件。

失败处理: 如果 git status 失败,验证你是否在 git 仓库内(git rev-parse --is-inside-work-tree)。

第 2 步:选择性暂存文件

暂存特定文件而非使用 git add .git add -A,以避免意外包含敏感文件或无关变更:

# Stage specific files by name
git add src/feature.R tests/test-feature.R

# Stage all changes in a specific directory
git add src/

# Stage parts of a file interactively (not supported in non-interactive contexts)
# git add -p filename

在提交之前审查已暂存的内容:

git diff --staged

预期结果: 只有预期的文件和变更被暂存。没有 .env、凭证或大型二进制文件。

失败处理: 使用 git reset HEAD <file> 取消暂存意外添加的文件。如果敏感数据被暂存,在提交之前立即取消暂存。

第 3 步:编写提交消息

使用规范化提交格式。始终通过 HEREDOC 传递消息以确保正确格式化:

git commit -m "$(cat <<'EOF'
feat: add weighted mean calculation

Implements weighted_mean() with support for NA handling and
zero-weight filtering. Includes input validation for mismatched
vector lengths.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
EOF
)"

规范化提交类型:

类型使用场景
feat新功能
fixBug 修复
docs仅文档变更
test添加或更新测试
refactor既不修复也不添加的代码变更
chore构建、CI、依赖更新
style格式化、空白(无逻辑变更)

预期结果: 提交创建成功,带有描述性消息,解释为什么而非仅仅什么

失败处理: 如果 pre-commit 钩子失败,修复问题,使用 git add 重新暂存,然后创建提交(不要使用 --amend,因为失败的提交从未被创建)。

第 4 步:修改上次提交(可选)

仅在提交尚未推送到共享远程仓库时修改:

# Amend message only
git commit --amend -m "$(cat <<'EOF'
fix: correct weighted mean edge case for empty vectors

EOF
)"

# Amend with additional staged changes
git add forgotten-file.R
git commit --amend --no-edit

预期结果: 上一次提交就地更新。git log -1 显示修改后的内容。

失败处理: 如果提交已被推送,不要修改。改为创建新提交。强制推送修改后的提交到共享分支会导致历史分叉。

第 5 步:验证提交

# View the last commit
git log -1 --stat

# View recent commit history
git log --oneline -5

# Verify the commit content
git show HEAD

预期结果: 提交出现在历史中,具有正确的消息、作者和文件变更。

失败处理: 如果提交包含错误的文件,使用 git reset --soft HEAD~1 撤销提交同时保持变更暂存,然后正确地重新提交。

验证清单

  • 只有预期的文件包含在提交中
  • 没有提交敏感数据(令牌、密码、.env 文件)
  • 提交消息遵循规范化提交格式
  • 消息正文解释了为什么做出变更
  • git log 显示具有正确元数据的提交
  • Pre-commit 钩子(如有)已通过

常见问题

  • 一次提交太多内容:每次提交应代表一个逻辑变更。将无关变更拆分为单独的提交
  • 盲目使用 git add .:始终先审查 git status。优先按名称暂存特定文件
  • 修改已推送的提交:绝不修改已推送到共享分支的提交。这会重写历史并给协作者带来问题
  • 模糊的提交消息:"fix bug"或"update"什么都没说。描述变更了什么以及为什么
  • 内容修改时忘记 --no-edit:向上次提交添加遗忘的文件时,使用 --no-edit 保留现有消息
  • 钩子失败导致 --amend:当 pre-commit 钩子失败时,提交从未被创建。使用 --amend 会修改上一次提交。修复钩子问题后始终创建新提交

相关技能

  • manage-git-branches — 提交前的分支工作流
  • create-pull-request — 提交后的下一步
  • resolve-git-conflicts — 处理 merge/rebase 期间的冲突
  • configure-git-repository — 仓库设置和约定

Dépôt GitHub

pjt222/agent-almanac
Chemin: i18n/zh-CN/skills/commit-changes
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Compétences associées

railway-docs

Documentation

Cette compétence récupère la documentation actuelle de Railway pour répondre aux questions sur les fonctionnalités, le fonctionnement ou des URL spécifiques de la documentation. Elle garantit que les développeurs reçoivent des informations précises et à jour directement depuis les sources officielles de Railway. Utilisez-la lorsque les utilisateurs demandent comment fonctionne Railway ou font référence à la documentation de Railway.

Voir la compétence

n8n-code-python

Documentation

Cette compétence Claude offre un accompagnement expert pour écrire du code Python dans les nœuds Code de n8n, en particulier pour utiliser la bibliothèque standard de Python et travailler avec la syntaxe spéciale de n8n comme `_input`, `_json` et `_node`. Elle aide les développeurs à comprendre les limites de Python dans n8n et recommande d'utiliser JavaScript pour la plupart des workflows, tout en proposant des solutions Python pour des besoins spécifiques de transformation de données.

Voir la compétence

archon

Documentation

La compétence Archon offre une recherche sémantique alimentée par RAG et une gestion de projet via une API REST. Utilisez-la pour interroger la documentation, gérer des projets/tâches hiérarchiques et effectuer de la recherche de connaissances avec des capacités de téléchargement de documents. Priorisez toujours Archon en premier lors de la recherche dans une documentation externe avant d'utiliser d'autres sources.

Voir la compétence

n8n-code-javascript

Documentation

Cette compétence Claude fournit des conseils d'expert pour écrire du code JavaScript dans les nœuds Code d'n8n. Elle couvre la syntaxe essentielle spécifique à n8n comme les variables `$input`/`$json`, les assistants HTTP et la gestion des DateTime, tout en résolvant les erreurs courantes. Utilisez-la lors du développement de workflows n8n nécessitant un traitement JavaScript personnalisé dans les nœuds Code.

Voir la compétence