Статус выхода «git log --all --grep»

Я хочу выполнить поиск по нескольким репозиториям git, если есть заданное сообщение о фиксации.

git log --all --grep='magic-message' > /dev/null; echo $?

Но похоже, что статус выхода всегда равен 0 в обоих случаях (совпадение или отсутствие совпадения).

Как искать сообщения фиксации, включая соответствующий статус выхода?

0
0
134
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В то время как git log возвращает 0, чтобы указать, что ничего не сломалось (тем самым подавляя код внутреннего обращения к grep), сам grep имеет более полезный код возврата. Вы можете вызвать на grep вручную, используя конвейер:

git log --all | grep -q 'magic-message'

-q подавляет весь вывод, как и ваше перенаправление. Это стандартный флаг для использования grep в тесте, как вам кажется.

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