程序员社区

Git系列教程 --- 16、Git的提交(Commit)

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

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

提交是项目的快照。每个提交都记录在存储库的主分支中。我们可以召回提交或将其恢复到旧版本。两个不同的提交永远不会覆盖,因为每个提交都有自己的提交 ID。这个 commit-id 是一个由SHA(安全哈希算法)算法创建的密码。

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

git commit 命令

commit 命令将提交更改并生成一个 commit-id。不带任何参数的 commit 命令将打开默认文本编辑器并询问提交消息。我们可以在这个文本编辑器中指定我们的提交消息。它将按如下方式运行:

$ git commit  

上面的命令将提示默认编辑器并询问提交消息。我们对newfile1.txt进行了更改并希望它提交。可以按如下方式完成:

考虑以下输出:

file

当我们运行命令时,它会提示一个默认的文本编辑器并询问提交消息。文本编辑器将如下所示:

file

Esc键,然后按“ I ”进入插入模式。输入任何你想要的提交消息。' :wq '之后按Esc保存并退出编辑器。因此,我们已经成功地进行了提交。

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

file

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

git commit -a

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

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

$ git commit -a  

输出:

file

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

file

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

git commit -m

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

$ git commit -m "Commit message."  

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

file

在上面的输出中,一个newfile4.txt与提交消息一起提交到我们的存储库。

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

$ git commit -am "Commit message."  

Git Commit Amend(更改提交消息)

修改选项让我们可以编辑最后一次提交。如果不小心,我们提交了错误的提交消息,那么这个功能对我们来说是一个野蛮的选择。它将按如下方式运行:

$ git commit -amend  

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

我们可能需要一些其他与提交相关的基本操作,如还原提交、撤消提交等,但这些操作不是提交命令的一部分。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Git系列教程 --- 16、Git的提交(Commit)

一个分享Java & Python知识的社区