试图弄清楚在git操作的幕后会发生什么。
创建树是提交的一部分。
根据git的v3 api,创建树需要base_tree(可以为空)。 Api文档:
https://developer.github.com/v3/git/trees/
是否有一种方法(也许是git log中的一个选项)来查看提交树的base_tree是什么?只是尝试找出git cmd line操作的确切方式,即它们是如何创建树的以及最佳实践是什么。
答案 0 :(得分:0)
如果我对您的理解是正确的,则基础树是指提交父级的树。
要查找提交foo
的父母:
git log -1 foo --pretty=%P
它可能会返回:
foo
是root提交,则什么都没有; foo
是常见提交时,一个提交哈希值; foo
是真正的合并提交时; foo
是章鱼合并提交时,两个以上的值。要查找提交树bar
:
git log -1 bar --pretty=%T
# or
git rev-parse bar^{tree}
答案 1 :(得分:0)
我认为您的意思是修订对象的 tree ,对吗?实际上,这很容易看到:
git cat-file -p HEAD
查看树ID。这是该修订版中树对象的ID。这也可以:
git show --pretty=%T --quiet HEAD
您当然可以使用HEAD以外的任何版本。