有什么办法用git来查看树的base_tree?

时间:2019-01-25 02:19:05

标签: git github github-api

试图弄清楚在git操作的幕后会发生什么。

创建树是提交的一部分。

根据git的v3 api,创建树需要base_tree(可以为空)。 Api文档:

https://developer.github.com/v3/git/trees/

是否有一种方法(也许是git log中的一个选项)来查看提交树的base_tree是什么?只是尝试找出git cmd line操作的确切方式,即它们是如何创建树的以及最佳实践是什么。

2 个答案:

答案 0 :(得分:0)

如果我对您的理解是正确的,则基础树是指提交父级的树。

要查找提交foo的父母:

git log -1 foo --pretty=%P

它可能会返回:

  1. 如果foo是root提交,则什么都没有;
  2. foo是常见提交时,一个提交哈希值;
  3. 两个值,当foo是真正的合并提交时;
  4. 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以外的任何版本。