git log --oneline выдает информацию HEAD, которая теряется при передаче по трубопроводу или перенаправлении в файл - PullRequest
2 голосов
/ 17 марта 2019

Когда я выполняю команду git log --oneline без переадресации или перенаправления файлов, она дает информацию о расположении HEAD и ветви (master в примере ниже)

 $ git log --oneline --color=never

8bc8511 (HEAD -> day_20190316) Today # 12
1381438 Today # 11
d87d53a Today # 10
718aef9 Today # 9
b05e17e Today # 8
....
2643d93 (master) Initial commit

Однако, когда я передаю это через less или перенаправляю в файл, HEAD и основная информация исчезают. Я попытался перенаправить stderr, чтобы присоединиться к stdout, но это не имеет значения.

$ git log --oneline --color = never 2> & 1 | / USR / бен / более

8bc8511 Today # 12
1381438 Today # 11
d87d53a Today # 10
718aef9 Today # 9
b05e17e Today # 8
.....
2643d93 Initial commit

Я бы хотел получить доступ к этой информации, но как?

1 Ответ

3 голосов
/ 17 марта 2019

Используйте флаг --decorate

git log --oneline --decorate --color=never | less

С git docs

- украшать [= short | full | auto | no]

Распечатайте имена ссылок любых коммитов, которые показаны.Если указано краткое, префикс имени префикса refs / head /, refs / tags / и refs / remotes / не будет напечатан.Если указан full, будет напечатано полное имя ссылки (включая префикс).Если задано auto, то, если выходные данные отправляются на терминал, имена ссылок отображаются так, как если бы они были краткими, в противном случае имена ссылок не отображаются.Опция по умолчанию короткая.

по умолчанию, когда --decorate не указан, автоматически, что означает «добавить информацию HEAD, если вы идете на терминал, в противном случае - нет».Когда вы указываете --decorate без аргумента, по умолчанию используется short, что является краткой информацией HEAD, на которую вы ссылались в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...