它用于记录存储库中的更改。它是git add之后的下一个命令。每个提交都包含索引数据和提交消息。每次提交都会形成父子关系。当我们在 Git 中添加文件时,它会发生在暂存区。提交命令用于从暂存区获取更新到存储库。
分期和提交是相互关联的。暂存允许我们继续对存储库进行更改,并且当我们想要将这些更改共享到版本控制系统时,提交允许我们记录这些更改。
提交是项目的快照。每个提交都记录在存储库的主分支中。我们可以召回提交或将其恢复到旧版本。两个不同的提交永远不会覆盖,因为每个提交都有自己的提交 ID。这个 commit-id 是一个由SHA(安全哈希算法)算法创建的密码。
让我们看看不同类型的提交。
git commit 命令
commit 命令将提交更改并生成一个 commit-id。不带任何参数的 commit 命令将打开默认文本编辑器并询问提交消息。我们可以在这个文本编辑器中指定我们的提交消息。它将按如下方式运行:
$ git commit
上面的命令将提示默认编辑器并询问提交消息。我们对newfile1.txt进行了更改并希望它提交。可以按如下方式完成:
考虑以下输出:
当我们运行命令时,它会提示一个默认的文本编辑器并询问提交消息。文本编辑器将如下所示:
按Esc键,然后按“ I ”进入插入模式。输入任何你想要的提交消息。' :wq '之后按Esc保存并退出编辑器。因此,我们已经成功地进行了提交。
我们可以通过 git log 命令检查提交。考虑以下输出:
我们可以在上面的输出中看到日志选项显示提交 ID、作者详细信息、日期和时间以及提交消息。
git commit -a
commit 命令还提供-a选项来指定一些提交。它用于提交所有更改的快照。此选项仅考虑 Git 中已添加的文件。它不会提交新创建的文件。考虑以下场景:
我们对已经暂存的文件 newfile3 进行了一些更新,并创建了一个文件 newfile4.txt。检查存储库的状态并运行 commit 命令,如下所示:
$ git commit -a
输出:
上面的命令将提示我们的默认文本编辑器并询问提交消息。键入提交消息,然后保存并退出编辑器。这个过程只会提交已经添加的文件。它不会提交尚未暂存的文件。考虑以下输出:
正如我们在上面的输出中看到的,newfile4.txt 尚未提交。
git commit -m
commit 命令的 -m 选项允许您在命令行上编写提交消息。此命令不会提示文本编辑器。它将按如下方式运行:
$ git commit -m "Commit message."
上面的命令将使用给定的提交消息进行提交。考虑以下输出:
在上面的输出中,一个newfile4.txt与提交消息一起提交到我们的存储库。
我们还可以对已经暂存的文件使用-am选项。此命令将立即使用提交消息对已暂存的文件进行提交。它将按如下方式运行:
$ git commit -am "Commit message."
Git Commit Amend(更改提交消息)
修改选项让我们可以编辑最后一次提交。如果不小心,我们提交了错误的提交消息,那么这个功能对我们来说是一个野蛮的选择。它将按如下方式运行:
$ git commit -amend
上面的命令将提示默认文本编辑器并允许我们编辑提交消息。
我们可能需要一些其他与提交相关的基本操作,如还原提交、撤消提交等,但这些操作不是提交命令的一部分。