Распечатать сообщение коммита данного коммита в git

Мне нужна сантехническая команда, чтобы напечатать сообщение о коммите одного данного коммита - ни больше, ни меньше.

8 ответов

Решение

Это не "сантехника", но она будет делать именно то, что вы хотите:

$ git log --format=%B -n 1 <commit>

Если вам абсолютно необходима команда "сантехника" (не знаю, почему это требование), вы можете использовать rev-list:

$ git rev-list --format=%B --max-count=1 <commit>

Хотя rev-list также распечатает коммит sha (в первой строке) в дополнение к сообщению коммита.

git show это больше команда сантехника, чем git logи имеет те же параметры форматирования:

git show -s --format=%B SHA1

Не сантехника, но у меня есть это в моем.gitconfig:

lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'

Это "последнее резюме" и "последнее сообщение". Вы можете предоставить коммит, чтобы получить сводку или сообщение об этом коммите. (Я использую 1.7.0.5, поэтому не имею%B.)

Это даст вам очень компактный список всех сообщений за любое указанное время.

git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT

Я начал использовать

git show-branch --no-name <hash>

Кажется быстрее чем

git show -s --format=%s <hash>

Оба дают одинаковый результат

Распечатать сообщение о фиксации с помощью git-rev-list

git-rev-list это команда сантехники, которая позволяет вам распечатать сообщение о фиксации.

Используйте это так.

      git rev-list --format=%B --max-count=1 <commit> | tail +2
  • --format=%B: показать сообщение (тема %s + %n%n + тело %b)
  • --max-count=1: нас просто интересует одна фиксация
  • <commit>: а sha, HEAD, branch-name, tag-name, branch1...branch2 и т.п.
  • | tail +2: первая строка - это фиксация sha, пропустите это

Это намного быстрее, чем git log или же git show.

Я использую шортлог для этого:

$ git shortlog master..
Username (3):
      Write something
      Add something
      Bump to 1.3.8 

Чтобы получить мое последнее сообщение о фиксации только в git

git log --format=%B -n 1 $(git log -1 --pretty=format:"%h") | cat -

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