Все команды возвращают однобайтовое значение (от 0 до 255) после завершения выполнения. Обычно возвращаемое значение 0 указывает на успех, а не 0 указывает на какую-то проблему. Различные оболочки имеют конструкции, которые проверяют нулевое значение возвращаемого значения и могут воздействовать на него.
#!/bin/bash if git ... then echo "git succeeded" fi if ! git ... then echo "git failed" fi git ... || echo "git failed" git ... && echo "git succeeded"