Есть ли способ w / git, чтобы увидеть base_tree дерева? - PullRequest
0 голосов
/ 25 января 2019

Попытка выяснить, что происходит под капотом операций git.

Создание дерева - это часть создания коммита.

Согласно API v3 для git, создание дереватребует base_tree (которое может быть пустым).Api docs:

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

Есть ли способ (возможно, опция в git log), чтобы увидеть, что такое base_tree для дерева коммитов?Просто пытаюсь выяснить для строковых операций git cmd, как именно они создают деревья и каковы лучшие практики.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Я думаю, вы имеете в виду дерево объекта ревизии, верно? Это можно увидеть очень легко, на самом деле:

git cat-file -p HEAD

Посмотрите на идентификатор дерева. Это идентификатор объекта дерева, который находится на этой ревизии. Это также работает:

git show --pretty=%T --quiet HEAD

Конечно, вы можете использовать любую ревизию, кроме HEAD.

0 голосов
/ 25 января 2019

Если я правильно вас понимаю, базовое дерево относится к дереву (ам) родителя (ей) коммита.

Чтобы найти родителей коммита 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...