Поиск в журнале git с помощью комментария

#git #terminal #git-bash #git-log

#git #терминал #git-bash #git-log

Вопрос:

Я проверяю свои журналы git, используя git log --stat которые, мне отображаются все коммиты и файлы, которые были изменены в этих коммит.

Теперь есть коммит, который был сделан давным-давно, я помню часть сообщения о фиксации, так что, когда я делаю git log --stat | grep 'message text' это, в журнале отображаются только сообщения о фиксации, в которых существует «текст сообщения».

Однако мне нужно увидеть хотя бы идентификатор фиксации вместе с результатами grep. Как мне этого добиться?

Ответ №1:

Попробуйте использовать это, чтобы получить полную информацию.

 git log --all --grep='Your text here'
  

Используемая версия Git:

 git version 2.9.0.windows.1
  

Пример:

 $ git log --all --grep='Favourite Module modifie' 
  

Результат:

 commit 8226dce6f4f5ffd8143b8aefdee3b9b971040aa0 
Author: Surender Singh <sure**@gmail.com> Date: Thu Aug 25 11:29:32 2016  0530 
view Favourite Module modified
  

Комментарии:

1. По-прежнему не вижу идентификаторов commid, он просто показывает все сообщения о фиксации, содержащие «Ваш текст здесь»

2. фиксация 8226dce6f4f5ffd8143b8aefdee3b9b971040aa0 Выше показывает идентификатор фиксации для фиксации

Ответ №2:

Попробуйте использовать --oneline :

 git log --oneline | grep -F 'message text'
  

В противном случае передайте свой результат less и выполните поиск, используя меньше:

 git log | less
/message text
  

Ответ №3:

Используйте опции для grep, чтобы показать больше строк контекста. Выберите подходящий размер num, чтобы увидеть ваш идентификатор.

 grep -A num -B num
  

Ответ №4:

Это позволит найти ваш комментарий.

 git log --grep "search text" --author your_name
  

Документация Atlassian для журнала git Прокрутите вниз до «По сообщению» для получения дополнительной информации.

В качестве отступа вы можете использовать —author дважды. Мне нужно было найти набор проверок, сделанных двумя разработчиками. Это мой любимый способ поиска иголки в стоге сена git. —pretty=online выполняет две вещи: 1) каждый коммит находится в одной строке, и 2) отображается полный ссылочный номер коммита. Просто используя —oneline, вы получаете то же самое, за исключением сокращения ссылочного номера фиксации.

 git log --grep "#Bug" --author jones --author smith --pretty=oneline

dev8.4> git log --grep "#Bug" --author jones --author smith --pretty=oneline
80334597b56add0ad4a3ddd02e7a6514bf01ad1e #Bug -- Further Mods To Code - CC Save
16cc3b4e949e965de9b72eb4583fa8df659528a0 #Bug -- Use new get charge function to load CC.
b207498261b4622ef88cb696365bf9af2f3fc6e1 #Bug -- Reference now editable after CC scan.
56385b7a77e2ec9af3b827f6a9ba93c22f267e51 #Bug -- Reload Entire Page after CC charge.
19e9cb05dabd8cc7c9a80e64187821d562af043c #Bug -- force Guid after save event.
c363ed97fdc2b56d1fcd84ca48eb300dbb120a3d #Bug -- Guid was getting lost in some cases.