Мне нужна сантехническая команда, чтобы напечатать сообщение о коммите одного данного коммита - ни больше, ни меньше.
Мне нужна сантехническая команда, чтобы напечатать сообщение о коммите одного данного коммита - ни больше, ни меньше.
Ответы:
Это не "сантехника", но она будет делать именно то, что вы хотите:
$ git log --format=%B -n 1 <commit>
Если вам абсолютно необходима команда «сантехника» (вы не уверены, почему это необходимо), вы можете использовать rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
Хотя rev-list
в дополнение к сообщению о фиксации будет также выводиться сообщение sha (в первой строке).
%s%b
%B
%B
правильный указатель (по крайней мере, в Git 1.7.2, не уверен, когда он был добавлен).
%B
был добавлен после 1.7.1 (вероятно, в 1.7.1.1).
$ git log --format=%B -n 1 <commit> | cat -
Это даст вам сообщение коммита и никакой коммит ша, и вы можете «передать» его. Я на самом деле использую это как часть моего скрипта CI.
git show
это больше, чем сантехническая команда git log
, и имеет те же параметры форматирования:
git show -s --format=%B SHA1
%s
вместо %B
.
Не сантехника, но у меня есть это в моем .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 show -s --oneline <commit>