我正在阅读git对象:blob,tree,commit,tag.为了更好地理解git是如何工作的,我尝试了一些低级命令,比如write-tree和commit-tree.
mkdir test; cd test - > git initgit add file.我可以看到生成blob和树对象.git/objectsgit write-tree 打印当前的treeIDgit commit-tree treeID -m "commit a tree"提交这棵树.在此操作之后,生成一个提交对象,我可以看到它确实包含作者,日期等.但是,我无法检查我的提交使用git log,错误是:fatal: bad default revision 'HEAD'.经过上面的操作,当我运行时git status,我看到文件仍然在索引中等待提交.什么是和'commit' commit-tree之间有什么区别commit-tree?
git-commit - 记录对存储库的更改
将索引的当前内容存储在新提交中,以及来自用户的描述更改的日志消息。
git commit“记录对存储库的更改”
SO 处显示git-commit了图示
git-commit-tree - 创建一个新的提交对象
基于提供的树对象创建一个新的提交对象,并在 上发出新的提交对象 id stdout。
这通常不是最终用户想要直接运行的。基于提供的树对象创建一个新的提交对象,并在标准输出上发出新的提交对象 ID。除非给出
-m或选项,否则从标准输入读取日志消息。-F