Git Commit

2025年3月17日 | 阅读 3 分钟

它用于记录存储库中的更改。它是继 git add 之后的下一个命令。每个提交都包含索引数据和提交消息。每个提交构成父子关系。当我们在Git中添加一个文件时,它将在暂存区中进行。 commit命令用于从暂存区获取更新到存储库。

暂存和提交是相互关联的。暂存允许我们继续对存储库进行更改,当我们想将这些更改共享到版本控制系统时,提交允许我们记录这些更改。

提交是项目的快照。每个提交都记录在存储库的主分支中。我们可以调用提交或将其恢复到旧版本。两个不同的提交永远不会被覆盖,因为每个提交都有自己的提交ID。此提交ID是由SHA(安全散列算法)算法创建的加密数字。

让我们看看不同种类的提交。

git commit命令

commit命令将提交更改并生成一个提交ID。没有参数的commit命令将打开默认文本编辑器并要求输入提交消息。我们可以在此文本编辑器中指定我们的提交消息。它将按如下方式运行

上面的命令将提示一个默认编辑器并要求输入提交消息。我们已对newfile1.txt进行了更改,并希望将其提交。它可以按如下方式完成

考虑下面的输出

Git Commit

当我们运行该命令时,它将提示一个默认文本编辑器并要求输入提交消息。文本编辑器将如下所示

Git Commit

Esc键,然后按'I'进入插入模式。键入您想要的提交消息。按Esc,然后按':wq'以保存并退出编辑器。因此,我们已成功提交。

我们可以通过git log命令检查提交。考虑以下输出

Git Commit

我们可以在上面的输出中看到log选项显示了提交ID、作者详细信息、日期和时间以及提交消息。

要了解有关log选项的更多信息,请访问Git Log

Git commit -a

commit命令还提供-a选项以指定一些提交。它用于提交所有更改的快照。此选项仅考虑Git中已添加的文件。它不会提交新创建的文件。考虑以下情况

我们已对我们已暂存的文件newfile3进行了一些更新,并创建了一个文件newfile4.txt。检查存储库的状态并按如下方式运行commit命令

考虑输出

Git Commit

上面的命令将提示我们的默认文本编辑器并要求输入提交消息。键入提交消息,然后保存并退出编辑器。此过程将仅提交已添加的文件。它不会提交尚未暂存的文件。考虑以下输出

Git Commit

正如我们在上面的输出中看到的,newfile4.txt尚未提交。

Git commit -m

commit命令的-m选项允许您在命令行上编写提交消息。此命令不会提示文本编辑器。它将按如下方式运行

上面的命令将使用给定的提交消息进行提交。考虑以下输出

Git Commit

在上面的输出中,newfile4.txt已使用提交消息提交到我们的存储库中。

我们还可以使用-am选项来处理已暂存的文件。此命令将立即使用提交消息提交已暂存的文件。它将按如下方式运行

Git Commit Amend(更改提交消息)

amend选项允许我们编辑上次提交。如果我们在不小心的情况下提交了错误的提交消息,那么此功能对我们来说是一个有用的选项。它将按如下方式运行

上面的命令将提示默认文本编辑器,并允许我们编辑提交消息。

我们可能需要其他与提交相关的重要操作,例如恢复提交、撤消提交等,但这些操作不是commit命令的一部分。我们可以使用其他命令来完成。一些基本操作如下


下一主题Git Clone