首页 > 解决方案 > 有没有办法用 git 查看树的 base_tree?

问题描述

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

创建树是提交的一部分。

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

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

有没有办法(可能是 git log 中的一个选项)来查看提交树的 base_tree 是什么?只是想弄清楚 git cmd 行操作究竟是如何创建树的以及那里有哪些最佳实践。

标签: gitgithubgithub-api

解决方案


如果我理解正确,基本树是指提交父级的树。

要查找提交的父母foo

git log -1 foo --pretty=%P

它可能会返回:

  1. 什么都没有,什么时候foo是根提交;
  2. 一个提交哈希值,什么时候foo是普通提交;
  3. 两个值,什么时候foo是真正的合并提交;
  4. 超过两个值,什么时候foo是章鱼合并提交。

要查找提交的树bar

git log -1 bar --pretty=%T
# or
git rev-parse bar^{tree}

推荐阅读