Cas*_*bel 52
简而言之,没有.您将看到退出代码1表示错误,0表示成功.
从快速点击源代码,有一些预期的127和128用于它们的特定目的(命令未找到,错误已经报告),以及一些地方的一些不寻常的代码,但是对于磨机错误的运行,它是所有exit(1)
.
chr*_*ock 47
我设置了一个失败的测试.这就是我得到的:
$ 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
Run Code Online (Sandbox Code Playgroud)
0
正如预期的那样,Git 在正确合并时返回.
Gus*_*rtz 12
git status
在非git repo上运行会返回128而不是1,这有助于快速确定是否存在git repo.
小智 7
git push --delete origin a_remote_tag_name
如果使用 git version 标签不存在,则返回 256 1.8.3.1
最好有每个命令返回的特定返回代码及其指示的综合列表。这也可能有助于防止更改返回代码的含义(自动化脚本可能依赖)。
错误128(没有来自git的错误消息)可能是“意外问题”的全部。
我正在git checkout -- myfile
通过其他用户修改.git下文件的操作(例如“ ”以还原修改后的文件)进行操作。(在我的案例中,“ chmod -R og+w .git
”已解决;很自然,除非您了解案例的安全隐患,否则不要这样做!)
Git 2.24(2019 年第 4 季度)确实说明了git
命令如何返回代码。
请参阅提交 50094ca、提交 c1a6f21、提交 854b5cb、提交 dd2b6b6、提交 6bd26f5、提交 c6ec6da、提交 f2e2fa8 、提交 460609c 、提交 92014b6、提交 0ab74e9、提交 cb46c40 、提交b562a54(8 月 27 日) 2019),并提交 fe49814(2019 年 8 月 20 日)作者:刘丹顿 ( )。(由Junio C Hamano 合并 -- --在提交 1c6fc94中,2019 年 9 月 30 日)Denton-L
gitster
t4014:停止丢失 git 命令的返回码
目前,Git 命令的返回码丢失有两种情况。
第一种方法是当命令位于管道的上游时。在管道中,仅使用最后一个命令的返回码。因此,所有其他命令的返回码都将被屏蔽。
重写管道,以便上游没有 Git 命令。另一种方法是当命令位于非赋值子 shell中时。
返回码将丢失,取而代之的是周围命令的返回码。
重写此实例,以便 Git 命令输出到文件,并且周围的命令仅调用具有非 Git 命令的子 shell。
所以不要写:
git cat-file commit rebuild-1 | grep "^Side .* with .* backslash-n"
Run Code Online (Sandbox Code Playgroud)
类型:
git cat-file commit rebuild-1 >actual &&
grep "^Side .* with .* backslash-n" actual
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
63164 次 |
最近记录: |