Распечатать сообщение коммита данного коммита в 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 -