Доступ к теме reflog с помощью git rev-list (или любой другой команды сантехники)

Я хочу получить доступ к темам рефлогов с помощью команды сантехники. Я ожидал:

$ git rev-list --format='%gs' --walk-reflogs HEAD

чтобы дать мне то, что я хочу, но это просто дает мне результат вроде:

commit f1cb402488661fb3662ad876e98fcce991677333
commit 65e9bd51169e7f54f76edc9dbc926ec92af2fd7f
commit 1139b67c36f878a0e82e1dad141404ed7fb0923a
commit bea98a6a32477ad8e93929ac8d8f2ec66a9d3375
commit 9682247a229f2954820887212b7769a2a89ccd45
commit a73583bb74fd4d6db7bed6a6b61ba17be812e842
commit 96dbe20f02c58f6f5599495978e962a0ee285ce8
commit aba4a324c3f95ebebf8f3c8b2db3c89660a25ebe
commit 1139b67c36f878a0e82e1dad141404ed7fb0923a
commit f35aedc3594f9cb9dce5c89638d80e19c5f257b9

OTOH:

git reflog --format='%gs' HEAD 

дает мне то, что я ожидал.


person Alec    schedule 12.03.2021    source источник
comment
Я считаю, что этот пост может помочь понять больше о сантехнических командах stackoverflow.com/questions/39847781/   -  person Salman Waheed    schedule 12.03.2021
comment
Чего именно вы ожидали?   -  person Marco Luzzara    schedule 13.03.2021


Ответы (1)


git reflog - это интерфейс для git log (не для git rev-list). Хотя git rev-list является одновременно командой сантехники и сестринской командой git log, это не совсем эквивалент версии из git log для сантехники. В частности, как вы обнаружили, у него нет удобного способа доступа к частям коммитов и их форматирования.

Довольно печально то, что не существует сантехнической версии git log. Возможно, подобно тому, как git status имеет --porcelain, чтобы превратить его в водопровод, git log нужно --porcelain, так что нам не нужно запускать git -c log.decorate=... log.pretty=... для отмены чего-либо, что может быть в .gitconfig какого-либо пользователя. (Это не означает, что нужно переопределить только декоративные и красивые настройки: это были только те два, о которых я мог подумать здесь не с рук. О, конечно, пейджер тоже.)

person torek    schedule 13.03.2021