Как ошибки слияния или ошибки перебазирования. Есть ли уникальный код ошибки?
86
Я настроил тест на провал. Вот что у меня получилось:
$ 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
0
Как и ожидалось, Git возвращается при правильном слиянии.
git merge
(в 1.7.4 - kernel.org/pub/software/scm/git/docs/v1.7.4/git-merge.html ) только упоминается статус возврата в одном месте (если вы используете "- -ff-only "и он не может выполнить быструю фиксацию вперед, он возвращает ненулевое значение - он явно не говорит, что возвращается, если все работает или возник конфликт слияния.&&
; вот как реализованы их тесты.git rebase
же поведение?Короче нет. Вы увидите код выхода 1 для ошибок и 0 для успеха.
Из быстрого поиска источника можно найти некоторые из ожидаемых 127 и 128 для их конкретных целей (команда не найдена, ошибки уже сообщены), а также несколько необычных кодов в нескольких местах, но для стандартных ошибок это все
exit(1)
.источник
man
страницах.Запуск
git status
в репозитории, отличном от git, возвращает 128, а не 1, что помогает быстро определить, существует ли репозиторий git или нет.источник
Ошибка 128, при отсутствии сообщения об ошибке от git, может быть уловкой «неожиданной проблемы».
Я получал это при операциях, которые требовали изменения файлов в .git (например, "
git checkout -- myfile
", чтобы вернуть измененный файл) другим пользователем. (В моем случае "chmod -R og+w .git
" это исправлено; естественно, не делайте этого, если вы не понимаете, как это влияет на безопасность в вашем случае!)источник
git push --delete origin a_remote_tag_name
Это возвращает 256, если тег не существует с использованием версии git
1.8.3.1
Было бы неплохо иметь сводный список конкретных кодов возврата, возвращаемых каждой командой, и того, что они указывают. Это также может помочь предотвратить изменение значений кода возврата (на которые могут полагаться сценарии автоматизации).
источник
Git 2.24 (4 квартал 2019 г.) действительно иллюстрирует, как
git
команды возвращают код.См. Фиксацию 50094ca , фиксацию c1a6f21 , фиксацию 854b5cb , фиксацию dd2b6b6 , фиксацию 6bd26f5 , фиксацию c6ec6da , фиксацию f2e2fa8 , фиксацию 460609c , фиксацию 92014b6 , фиксацию 0ab74e9 , фиксацию cb46c40 , фиксацию b562a54 (27 августа 2019 г.) и фиксацию b562a54 ( 27 августа 2019 г.) и пользователя Denton Liu (
Denton-L
) .(Объединено Junio C Hamano -
gitster
- в коммите 1c6fc94 , 30 сентября 2019 г.)Поэтому вместо написания:
Тип:
источник