1.12. 创建一个 Commit 对象

未匹配的标注

语法

怎么样去创建一个 commit 对象是用这个 commit-tree 这个命令。

git commit-tree [(-p )...]

它是必须要给两个参数。第一个参数就是一个 tree 的一个校验和,然后是一个父 commit 的校验和。那这个 tree 就是我们刚才创建的那个 tree 对象,我们通过这个 tree 对象来创建一个 commit。作者信息,就从环境变量里面去取。

获取父 commit

➜  plumbing-demo git:(main) ✗ git log --oneline -n 1

这样我们就得出了最近的那个 commit,这就是我们即将创建的 Commit 的 父 commit,其ID为(8f809e0)。

好,我们把刚才那个 新建的 tree ID (2d65f16) 复制过来。

创建 Commit 对象

➜  plumbing-demo git:(main) ✗ git commit-tree 2d65f16 -p 8f809e0

回车这个时候这个命令就会等待我们输入这个 commit 的 message。 我们输入 Add 4th news item 回车,然后就创建了这个 commit message 但是现在还不能够退出。UNIX 上面用的是 control + D 退出。

Add 4th news item
858d8460b8e690f2321e89e5a779d06cb0018236

现在输出的校验和就是我们新创建的这个 commit 对象的校验和。

查找 Commit 对象

通过这个校验和,我们就可以在那个对象数据库里面去找到它,我们找一找。

cd .git/objects

可以看到一个 85 开头的一个文件夹。上面输出的那个是858d846。

进入这个 85 文件夹。然后我们看一下,里面就有一个 8d846 好,这个就是我们新创建的这个 commit 对象。

等待更新

虽然我们新建了一个 Commit 对象,但现在 HEAD 或 分支 都没有更新到包括这个 Commit,它现在是一个挂起的Commit,随时可能丢失,如下图:

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~