Git возвращает конкретные коды ошибок возврата? - PullRequest
74 голосов
/ 07 февраля 2011

Как ошибки слияния или перебазирования ошибок. У него есть уникальный код ошибки?

Ответы [ 5 ]

51 голосов
/ 07 февраля 2011

Короче, нет.Вы увидите код выхода 1 для ошибок и 0 для успеха.

Из быстрого поиска источника, некоторые ожидаемые 127 и 128 для их конкретных целей (команда не найдена, ошибкиуже сообщалось), и несколько необычных кодов в нескольких местах, но для запуска ошибок мельницы, это все exit(1).

45 голосов
/ 07 февраля 2011

Я настроил тест на неудачу. Вот что я получил:

$ git merge newbranch
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.

$ echo $?
1

Git возвращает 0 при правильном слиянии, как и ожидалось.

12 голосов
/ 18 октября 2013

Запуск git status в репозитории без git возвращает 128, а не 1, что полезно для быстрого определения, существует ли репозиторий git.

5 голосов
/ 09 ноября 2011

Ошибка 128, без сообщения об ошибке от git, может быть универсальной для «неожиданной проблемы».

Я получал это при операциях, которые требовались для изменения файлов в .git (например, * git checkout -- myfile "чтобы восстановить измененный файл) другим пользователем.(В моем случае «chmod -R og+w .git» исправил это; естественно, не делайте этого, пока не поймете последствия для безопасности вашего дела!)

3 голосов
/ 22 марта 2018

git push --delete origin a_remote_tag_name

Возвращает 256, если тег не существует с использованием git-версии 1.8.3.1

Было бы неплохо иметь сводный список конкретных кодов возврата, возвращаемых каждой командой, и того, что они указывают. Это также может помочь предотвратить изменение значений кода возврата (на какие сценарии автоматизации может положиться).

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