Git提交和Git提交树有什么不同 [英] What is the difference between git commit and git commit-tree

查看:11
本文介绍了Git提交和Git提交树有什么不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在阅读有关Git对象的文章:Blob、Tree、Commit、Tag。为了更好地理解GIT的工作原理,我尝试了一些低级命令,如write-treecommit-tree

  1. mkdir test; cd test-->git init
  2. 我创建了一个文件,git add file。我可以看到在.git/objects
  3. 中生成了一个BLOB和树对象
  4. git write-tree打印当前树ID
  5. git commit-tree treeID -m "commit a tree"提交此树。在此操作之后,生成了一个提交对象,我可以看到它确实包含作者、日期等。但是,我不能使用git log检查我的提交,错误是:fatal: bad default revision 'HEAD'
在上述操作之后,当我运行git status时,我看到文件仍在索引中等待提交。commit-tree有什么用处?commit-tree和`Commit‘有什么区别?

推荐答案

git-commit-记录对存储库的更改

将索引的当前内容与来自用户的描述更改的日志消息一起存储在新的提交中。

Git提交"记录对存储库的更改"

git-commit的图表表示在SO

中显示here

git-commit-tree-创建新的提交对象

基于提供的树对象创建新的提交对象,并在stdout发出新的提交对象ID。

这通常不是最终用户希望直接运行的。创建一个 基于提供的树对象的新提交对象,并发出新的 在标准输出上提交对象ID。日志消息是从标准的 输入,除非给出-m-F选项。

这篇关于Git提交和Git提交树有什么不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆