如何处理gitpython clone异常?

tom*_*234 5 python git gitpython

我正在尝试使用GitPython编写批处理克隆脚本,但是我找不到有效的例子,例如git url不存在,下载interupt等。

我实际上该怎么做?

我现有的代码:

giturl = 'https://github.com/'+username+'/'+hwName+'.git'
targeturl = os.path.join(hwfolder,username+'-'+hwName)
try:
    repo = Repo.clone_from(giturl, targeturl, branch='master')
except:
    #git url not reachable
    #download interupt
    #target local path problem
Run Code Online (Sandbox Code Playgroud)

iva*_*eev 4

对于初学者

exception git.exc.GitError

所有包异常的基类

那么,谁说你必须处理所有或任何例外情况?你只能合理地处理那些你可以做一些明智的事情的事情。底层git和 TCP 堆栈已经足够智能,可以处理诸如不可靠连接之类的瞬态问题,因此,如果失败,通常您不能再试一次并希望这次能正常工作。

出于批处理作业的目的,只需将错误传播到上游,以便您的脚本正常失败。例如,在.bat文件中,您需要编写类似的内容,以便<command> || exit 1脚本在出现错误时终止,而不是盲目地继续。


现在,在您的 3 个具体案例中: