趋近智
git commit 命令是 Git 的核心操作之一,用于将项目修改的快照永久保存到仓库的历史记录中。它会获取已添加到暂存区的修改,并将其记录为项目的一个新版本。可以将一次提交想象成在游戏中保存进度;它会创建一个安全点,你以后可以回到这个点。每次提交都代表了项目在特定时间点的一个版本。
基本命令很简单:
git commit
当你运行此命令不带任何额外选项时,Git 会打开你在设置时配置的文本编辑器(或默认编辑器,如 Vim 或 Nano)。该编辑器会提示你输入一条提交信息。
提交信息是你在此次提交中所做修改的描述。它是给你未来的自己和协作者的留言,说明了进行这些修改的原因。虽然我们将在下一节介绍如何编写有用的信息,但基本结构通常包括:
编写完信息后,保存文件并关闭编辑器。Git 随后会创建提交,包含当前暂存区中的修改。
-m 快捷方式对于只需简短总结行的简单修改,你可以使用 -m 标记直接在命令行提供信息,从而绕过文本编辑器:
git commit -m "Add initial project structure with README"
此命令会立即执行提交,使用所提供的字符串作为信息。这对于小型、直接的修改来说很方便,但对于更复杂的更新,花时间在编辑器中编写详细信息通常是更好的做法。
当你执行 git commit 时,Git 会执行几项操作:
main)以指向这个新创建的提交。这个过程确保每次提交都是项目的一个完整、可识别的快照,并按时间顺序链接到以前的版本。
git commit命令使用已暂存的修改创建一个新的提交对象(例如,9e1d5)。指示你当前位置的HEAD引用,以及分支指针(main),会向前移动以指向这个新提交。
让我们演练一个典型流程:
README.md 文件。git status。Git 将报告 README.md 已修改但未暂存。
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
git add README.md。git status。Git 现在显示文件已暂存并准备好提交。
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
git commit -m "Update README with project description"。
$ git commit -m "Update README with project description"
[main 9e1d5f0] Update README with project description
1 file changed, 2 insertions(+)
git status。Git 现在报告工作目录是干净的,表示所有跟踪的修改都已提交。
$ git status
On branch main
nothing to commit, working tree clean
你已成功记录了项目的一个快照!该提交(由其唯一的 SHA-1 哈希值标识,例如输出中的 9e1d5f0,尽管你的会不同)现在是项目历史记录的一部分。你可以使用 git log 命令查看这段历史,我们将在很快了解到这个命令。
请记住,git commit 只记录那些已经通过 git add 暂存的修改。在你上次 git add 之后对工作目录中文件所做的任何修改将不会包含在提交中,除非你先暂存它们。这个两步过程(先暂存再提交)让你能精确控制项目历史记录中每个快照所包含的内容。
这部分内容有帮助吗?
git commit 命令的官方且权威来源,详细说明了其所有选项和行为。© 2026 ApX Machine Learning用心打造