L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

commit-changes

commit-changes

Stage, commit, and amend changes with conventional commit messages. Covers reviewing changes, selective staging, writing descriptive commit messages using HEREDOC format, and verifying commit history. Use when saving a logical unit of work to version control, creating a commit with a conventional message, amending the most recent commit, or reviewing staged…

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: commit-changes description: > Stage, commit, and amend changes with conventional commit messages. Covers reviewing changes, selective staging, writing descriptive commit messages using HEREDOC format, and verifying commit history. Use when saving a logical unit of work to version control, creating a commit with a conventional message, amending the most recent commit, or reviewing staged changes before committing. 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: wenyan source_locale: en source_commit: 1861e6a6 fence_basis_commit: 1861e6a6 translator: "Julius Brussee homage — caveman" translation_date: "2026-04-17"

提交變更

擇文件入列,書簡明之辭以提交,驗其錄之可徵。

用時

  • 納一完整之勞於版控乃用
  • 以合範之辭立提交乃用
  • 修最近之提交(辭或其內)乃用
  • 提交之前察已入列者乃用

入

  • 必要:一或數已變之文件
  • 可選:提交之辭(若闕則代擬之)
  • 可選:是否修前提交
  • 可選:合著者之署

法

第一步:察當前之變

察工作樹之狀、閱其差異。

# 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)。

第二步:擇文件入列

宜擇名而入之,勿濫用 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> 出之。若密物已列,立時出之,勿提交。

第三步:書提交之辭

依合範之式書之。辭必以 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 <noreply@anthropic.com>
EOF
)"

合範之類:

類用時
feat新功
fix修訛
docs獨書文檔
test增或更試
refactor變碼而不修不增
chore建構、CI、依賴之更
style修其形、空白(無邏輯之變)

得:提交已立,辭敘其故,不徒述其形。

敗則:若提交前掛鈎敗,修其因,以 git add 再入列,立新提交(勿用 --amend,蓋敗之提交未嘗立也)。

第四步:修前提交(可選)

唯前提交未推至共有之遠端,方可修之。

# 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 示其修後之容。

敗則:若提交已推,勿修之。代之以新提交。強推已修之提交於共有之枝,致史分歧。

第五步:驗其提交

# 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 示提交附正確之屬
  • 提交前掛鈎(若有)皆過

陷

  • 一提而納過繁:每一提交宜為一邏輯之變。無關之變宜分提之。
  • 盲用 git add .:必先察 git status。宜擇名而入之。
  • 修已推之提交:已推至共枝者,勿修之。此重寫其史,貽害於同工者。
  • 辭之空泛:「修訛」「更之」無所言也。宜述何變、何故。
  • 內容修而忘 --no-edit:補遺檔於前提交,宜用 --no-edit 以存舊辭。
  • 掛鈎敗而用 --amend:掛鈎敗則提交未立。用 --amend 反改前提交。掛鈎修後,必立新提交。

參

  • manage-git-branches — 提交前之枝務
  • create-pull-request — 提交後之下步
  • resolve-git-conflicts — 合併或變基時解其衝突
  • configure-git-repository — 庫之設與其範
Skills enregistrées