【Git】git commit命令使用介绍
它会打开一个文本编辑器(通常是 Vim 或系统默认编辑器)让你输入本次提交的详细说明(Commit Message)。暂存)的一组更改,作为一个有意义的、带有描述信息的快照,永久记录到你的项目 Git 历史中的命令。到本地 Git 仓库的历史记录中,创建一个新的提交(Commit)。选项,后面跟上用引号括起来的提交信息。是 Git 版本控制系统中。是将你精心准备(通过。
·
git commit 是 Git 版本控制系统中最核心的命令之一,它的作用是将暂存区(Staging Area) 中的内容永久保存到本地 Git 仓库的历史记录中,创建一个新的提交(Commit)。
核心概念:
- 工作目录(Working Directory):你实际编辑文件的地方。
- 暂存区(Staging Area / Index):一个中间区域,用于准备下一次提交。你用
git add命令将工作目录中修改的文件添加到暂存区。 - 本地仓库(Local Repository):存储项目完整历史记录和元数据的
.git目录。git commit就是将暂存区的内容快照保存到这里。
基本语法:
git commit [选项]
最常见和重要的用法:
-
提交暂存区的所有更改并添加提交信息:
这是最常用的方式。它会打开一个文本编辑器(通常是 Vim 或系统默认编辑器)让你输入本次提交的详细说明(Commit Message)。git commit- 在打开的编辑器中,第一行写一个简短精炼的总结(标题)(通常不超过50个字符)。
- 空一行。
- 然后可以写详细的正文说明(可选,解释为什么做这个修改、做了什么、有什么影响等)。遵循良好的提交信息规范(如 Conventional Commits)对团队协作非常重要。
- 保存并关闭编辑器后,提交就完成了。
-
直接在命令行中提供提交信息(避免打开编辑器):
使用-m或--message选项,后面跟上用引号括起来的提交信息。这是提交简短修改时最高效的方式。git commit -m "修复了用户登录失败的bug" git commit -m "添加新功能:用户个人资料页面" git commit -m "更新项目文档 README.md"
常用选项:
-
-a/--all:- 这个选项非常实用,它告诉 Git 在提交之前,自动将所有已跟踪(tracked)且已被修改(modified)或已删除(deleted)的文件添加到暂存区。
- 相当于先执行了
git add -u(更新所有已跟踪文件的修改/删除状态到暂存区),然后再执行git commit。 - 注意: 它不会自动添加新建的未跟踪(untracked)文件。你仍然需要先用
git add添加新文件。 - 用法:
git commit -a -m "提交所有已跟踪文件的修改" # 或者 git commit -am "提交所有已跟踪文件的修改" # -a 和 -m 可以合并
-
--amend:- 这个选项允许你修改最近的一次提交。它非常有用,例如:
- 你刚刚提交完,发现漏掉了一个小修改或者提交信息里有个错别字。
- 你想把刚刚漏掉
git add的文件添加到上一个提交中。
- 它会将当前暂存区中的更改与上一次提交的内容合并,并让你重新编辑提交信息(如果不指定
-m)。 - 重要提示: 修改的是提交历史本身。如果这个提交已经推送(
git push)到了远程仓库,再amend本地提交并强制推送(git push --force)会覆盖远程历史,可能导致协作问题。只应在本地未推送或明确知道后果时使用。 - 用法:
# 修改最近一次提交,包含当前暂存区的更改,并重新编辑提交信息 git commit --amend # 修改最近一次提交,包含当前暂存区的更改,并直接指定新的提交信息(不打开编辑器) git commit --amend -m "新的提交信息"
- 这个选项允许你修改最近的一次提交。它非常有用,例如:
-
-v/--verbose:- 在打开的提交信息编辑器中,会在信息下方额外显示你所提交的更改的差异(diff)。这有助于你更清晰地回顾和编写提交说明。
-
--allow-empty:- 允许创建一个没有任何文件更改的“空提交”。这在某些特殊场景下有用(例如触发 CI/CD 流程),但通常不常见。
-
--no-verify:- 绕过 Git 钩子(Git Hooks),例如
pre-commit或commit-msg钩子。这些钩子通常用于在提交前运行代码检查、测试或信息格式验证。谨慎使用,除非你明确知道为什么需要跳过钩子。
- 绕过 Git 钩子(Git Hooks),例如
使用流程总结:
- 修改文件: 在工作目录中编辑、添加或删除文件。
- 暂存更改: 使用
git add <文件名>或git add .(谨慎使用)将想要包含在下一次提交中的更改添加到暂存区。git status可以查看哪些文件被修改/暂存/未跟踪。 - 执行提交: 使用
git commit或git commit -m "提交信息"将暂存区的内容创建为一个新的提交记录,保存到本地仓库历史中。 - (可选)修改最近提交: 如果需要修正刚提交的内容或信息,使用
git commit --amend(注意风险)。 - 推送: 当准备好分享你的工作时,使用
git push将本地提交推送到远程仓库。
良好提交信息的准则:
- 标题行(第一行):
- 简短精炼(最好 <= 50 字符)。
- 以动词开头(使用祈使语气,如 Fix, Add, Update, Remove, Refactor, Bump, Release…)。
- 描述做了什么改变(What changed),而不是为什么改变(Why)。Why 可以写在正文。
- 首字母大写。
- 结尾不加句号。
- 正文(可选):
- 在标题行后空一行开始。
- 详细解释为什么需要这个改变(Why) 和这个改变是如何实现的(How),或者它解决了什么问题。
- 每行建议 <= 72 字符,方便阅读。
- 可以使用项目规范的问题追踪编号(如
Closes #123,Fixes JIRA-456)。
- 示例:
Add user profile picture upload feature - Implemented backend API endpoint `/users/:id/avatar` using Multer middleware - Added frontend component `AvatarUploader.vue` with drag-and-drop support - Validates image type and size on client and server - Stores images in Amazon S3 bucket 'user-avatars' - Resolves issue #42
**简而言之:git commit 是将你精心准备(通过 git add 暂存)的一组更改,作为一个有意义的、带有描述信息的快照,永久记录到你的项目 Git 历史中的命令。
更多推荐
所有评论(0)