我有一个程序从GitHub继续下载项目然后处理它们。然后我偶尔发现我的程序卡在GitHub提示符下键入用户帐户和密码。
我对GitHub的探索表明,这些项目不再有效,如果我将我的帐户和密码添加到" git clone" (例如,https://user_name:pwd@github.com/dev/proj.git)我可以避免密码提示并获得返回代码32768。
因此,我使用32768作为区分成功下载和下载失败的方法。但事实证明," git clone"许多有效的GitHub项目也返回" 32768"作为状态代码。
所以我很可能会误解" 32768"。我的第一个问题是" 32768"表示" git clone"的返回码。
我需要在没有监督的情况下运行程序。我的第二个问题是如何使我的程序找出" git clone"无需键入用户帐户和密码即可成功完成。
------加---- 找到一些调试,我发现Linux终端中git clone命令的返回码是128.我使用os.system(cmd_git_clone)运行命令,os.system的返回码是32768。
答案 0 :(得分:2)
我认为这是可行的步骤数。首先,配置git不提示输入密码(这样你的程序就不会卡住):
GIT_TERMINAL_PROMPT=0 git clone <repository>
然后检查命令的返回代码,如果有效,则克隆工作:
retVal=$?
if [ ! $? -eq 0 ]; then
echo "Error"
else
echo "Success"
fi
exit $retVal
答案 1 :(得分:1)
所以我只是遇到了相同的状态代码并且困惑了几个小时。
事实证明,对我来说,在调试并阅读stderror消息之后,事实证明Git抱怨不知道我是谁(参见:Git: "please tell me who you are" error)。我在我的程序中添加了几行来配置我的名字和git中的电子邮件,一切都很好。
当你有完成工作的脚本时,这似乎是一个很常见的错误。