【问题标题】:what does return code 32768 mean in "git clone"“git clone”中的返回码 32768 是什么意思
【发布时间】:2017-10-25 02:32:12
【问题描述】:

我有一个程序不断从 GitHub 下载项目,然后处理它们。然后我发现我的程序时不时卡在 GitHub 提示输入用户帐户和密码。

我对 GitHub 的探索表明这些项目不再有效,如果我将我的帐户和密码添加到“git clone”中(例如,https://user_name:pwd@github.com/dev/proj.git),我可以避免密码提示并获得返回码 32768。

因此,我使用 32768 作为区分成功下载和失败下载的方法。但事实证明,许多有效 GitHub 项目的“git clone”也返回“32768”作为状态码。

所以我很可能误解了“32768”。我的第一个问题是“32768”作为“git clone”的返回码意味着什么。

我需要让程序在没有监督的情况下运行。我的第二个问题是如何让我的程序在不输入用户帐户和密码的情况下成功完成“git clone”。

--------添加---- 找了一些调试,发现linux终端下git clone命令的返回码是128。我用os.system(cmd_git_clone)运行命令,os.system的返回码是32768。

【问题讨论】:

  • 128和32768有关系吗?我建议以任何语言阅读os.system 的文档,这可能会解释它用于返回代码的规则。

标签: git authentication github clone


【解决方案1】:

我认为这是可行的步骤数。首先,配置git不提示输入密码(这样你的程序就不会卡死):

GIT_TERMINAL_PROMPT=0 git clone <repository>

然后检查命令的返回码,如果有效,则克隆成功:

retVal=$?
if [ ! $? -eq 0 ]; then
    echo "Error"
else
    echo "Success"
fi
exit $retVal

【讨论】:

    【解决方案2】:

    所以我刚刚遇到了相同的状态代码,并且困惑了好几个小时。

    对我来说,在调试和阅读 stderror 消息之后,结果证明 Git 抱怨不知道我是谁(参见:Git: "please tell me who you are" error)。我在我的程序中添加了几行来在git中配置我的姓名和电子邮件,一切都很好。

    当您有可以完成工作的脚本时,这似乎是一个很常见的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2011-02-24
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多