Git показывает только сообщение для последней фиксации определенного файла в ветке - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь получить сообщение о коммите для последнего коммита в определенной ветке, который касается определенного файла.

Учитывая ветвь B и файл F, я думал, что это будет работать:

git show --pretty=format:%b B:F

Но это игнорирует формат% b и просто отображает содержимое файла F.

Я заменил «show» на «log», но тогда ничего не отображается.

Я знаю, что могу сделать это:

git log -1 --pretty=format:%b SHA

Но для этого требуется SHA, и я не знаю,как это получить.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Этот скрипт распечатает для вас все ветви (удаленные из-за флага -a) вместе с датой последнего принятия, пользователем и сообщением

git fetch --all && 
    for branch in `git branch -r | grep -v HEAD`; 
        do echo -e `git show --format="%ci %cr [%s]" $branch | head -n 1` \\t$branch; 
    done | sort -r
0 голосов
/ 28 февраля 2019

Если вы ищете, как вы указали в первом предложении,

«сообщение о последнем коммите в конкретной ветке, которое касается определенного файла» *

затем

git log -1 --pretty=format:'%b' <branch> -- path/to/file

может показаться правильным.

Тогда, как предлагает phd , вы можете рассмотреть возможность использования сообщения полной фиксации (%B), а не тело (%b) в одиночку.Действительно, если в коммите есть только однострочное сообщение (например, если вы просто git commit -m "short message"), %s (subject) содержит его, а %b пусто.

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