Причины ошибки git commit (выход с ненулевым значением) - PullRequest
0 голосов
/ 02 ноября 2018

Помимо случая, когда для фиксации нет файлов, существует ли какая-либо другая причина, по которой команда git commit может завершиться с ненулевым значением? У меня нет ошибки, чтобы показать, я просто пишу сценарий, как это:

#!/usr/bin/env bash

git commit -m "foo" || {
  echo "could not create new commit, no big deal"
}

## keep going with muh script

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

1 Ответ

0 голосов
/ 02 ноября 2018

Кроме случай, упомянутый Тимом Бигелайзеном в комментарии - git commit, когда в индексе есть несжатые файлы - git commit может завершиться ошибкой в ​​ряде дополнительных случаев:

  • Хук предварительной фиксации выходит из ненулевого значения, прерывая фиксацию. (Пользователь может пропустить ловушку предварительной фиксации, используя --no-verify, но ваш сценарий не использует --no-verify.)

  • Что-то еще идет не так, как надо, например, вся файловая система почему-то стала доступна только для чтения (например, Linux при некоторых аппаратных сбоях заморозит файловую систему в состояние только для чтения).

  • Фиксация действительно выполнена успешно, но ловушка после фиксации вышла ненулевой: если есть ловушка после фиксации, ее статус выхода становится статусом выхода git commit. (Возможно, это ошибка в Git, так как в документации утверждается, что ловушка после фиксации не может повлиять на результат git commit. Означает ли результат здесь означает сгенерированный коммит только , или должен ли он включить статус выхода команды?)

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