Wrap Long git reflog Lines?

git reflog отображает однострочное описание, обрезая его по правому краю.

74a8491 HEAD@{0}: checkout: moving from feature/x to feature/y
74a8491 HEAD@{1}: commit (merge): Merge branch 'feature/x' of https://github.com/
949d0e4 HEAD@{2}: ...

Как можно отобразить полное сообщение reflog, обернутое так, чтобы оно занимало минимально необходимое количество строк (одна строка для кратких описаний)?

3 ответа

git reflog может взять любой git log вариант, который вы хотите.

Если вы хотите, чтобы сообщение о полной фиксации связывалось с каждой записью git reflog, вы можете сделать:

git reflog show --pretty=full

Или для "однострочного для кратких описаний"

git reflog show --pretty=format:"%h : %s"

Вы можете принудительно переносить длинные сообщения с помощью core.pager конфиг.

Чтобы эмулировать 'git reflog', добавив автора, дату и время и оберните длинные строки описания:

git reflog show --pretty='%C(yellow)%h%Creset %gd %w(110,0,26)%gs %C(cyan)%cn%Creset %ar'
  • %h это короткий хеш
  • %w(wrapwidth, firstLineIndent, indent) вызывает перенос следующего поля на заданную ширину
  • %gs это описание reflog
  • %cn имя коммиттера
  • %ar дата изменения в относительном формате (время назад)

Сделайте это постоянным:

Чтобы включить команду:

git r     # call it whatever you want

Поместите это в файл ~/.gitconfig:

[псевдоним] r = reflog show --pretty='%C(желтый)%h%Creset %gd %w(110,0,26)%gs %C(голубой)% cn% Creset% ar'

(Псевдоним может быть назван как угодно, кроме 'reflog' или существующей команды.)

Обычный пейджер less, и вы можете переключить его опцию переноса строк. Тип -S по приглашению пейджера. h даст больше кровавых подробностей.

Другие вопросы по тегам