git commit
将暂存区的变更记录为一次提交
语法
git commit [<options>] [--] [<pathspec>...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-m --message |
指定提交信息 | git commit -m "fix: 修复登录bug" |
常用 |
--amend |
修改最后一次提交 | git commit --amend |
常用 |
-a --all |
自动暂存已跟踪文件的变更并提交 | git commit -am "update" |
常用 |
--no-edit |
修改提交时不修改提交信息 | git commit --amend --no-edit |
进阶 |
--allow-empty |
允许空提交 | git commit --allow-empty -m "trigger CI" |
进阶 |
示例
基本提交
git commit -m "feat: 添加用户注册功能"
暂存并提交
git commit -am "fix: 修复样式问题"
跳过 git add,但只对已跟踪文件有效
修改最后一次提交信息
git commit --amend -m "新的提交信息"
会改变 commit hash,已推送的慎用
追加文件到上次提交
git add forgotten-file.js git commit --amend --no-edit
不改信息,只追加文件
常见错误
nothing to commit, working tree clean
没有暂存的变更,先用 git add 添加
Aborting commit due to empty commit message
必须提供 -m 参数或在编辑器中写入信息
技巧
- 提交信息建议用 Conventional Commits 格式:feat/fix/docs/refactor
- 用 --amend 修改已推送的提交会导致 force push,团队协作时慎用