По сути, я спрашиваю, какую команду git (или цепочку команд) использует сервис, такой как gitlab или github, чтобы показать свое древовидное представление?
Извините, я не очень хорошо разбираюсь в английском, мне трудно сформулировать четкий вопрос.
Может быть, это более ясно, если я спрошу, делая.
Скажите, я запускаю эти команды:
git init
echo readme > readme
git add readme
git commit -m 'initial commit'
echo newfile > newfile
git add newfile
git commit -m 'add newfile'
echo 'readme line 2' >> readme
git add readme
git commit -m 'add line2 in readme'
mkdir directory
echo 'file within directory' > directory/file
git add directory/file
git commit -m 'add file inside directory'
Если я бегу git ls-tree HEAD
, я получу это:
mode type hash name
------ ---- ---------------------------------------- -----------
040000 tree 1886ff20e666d42f9c4684287bd87c45d4085d1e directory
100644 blob aa39060d7ee7daa8833a5ad2354c3f77d35cac71 newfile
100644 blob 8a19af2f451dc8ba3aa509914210c759a3f7edb7 readme
Если я запускаю git log --pretty=oneline
, я получу это:
commit hash commit message
---------------------------------------- -------------------------
e5791b809dbdc1c140124a822d812171bde9b1d1 add file inside directory
59a96b2dbab42d57ea74379ffb44b7ea97c75185 add line2 in readme
be90159c01a78190d32bc1b452da060d4ed61380 add newfile
2b0030b00a6b9ac56d63d3f1f2e46e7a3c796b4f initial commit
Я хочу получить что-то вроде этого:
mode type hash name commit message commit hash
------ ---- ---------------------------------------- ----------- ------------------------- ----------------------------------------
040000 tree 1886ff20e666d42f9c4684287bd87c45d4085d1e directory add file inside directory e5791b809dbdc1c140124a822d812171bde9b1d1
100644 blob aa39060d7ee7daa8833a5ad2354c3f77d35cac71 newfile add newfile be90159c01a78190d32bc1b452da060d4ed61380
100644 blob 8a19af2f451dc8ba3aa509914210c759a3f7edb7 readme add line2 in readme 59a96b2dbab42d57ea74379ffb44b7ea97c75185
См? узел каждого дерева показывает связанный / последний коммит. Так же, как Gitlab или GitHub
делает. Теперь вернемся к моему вопросу: какая команда git (или цепочка команд) выполняет
такой сервис, как gitlab или github, чтобы показать его в виде дерева?