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)
exception git.exc.GitError所有包异常的基类
那么,谁说你必须处理所有或任何例外情况?你只能合理地处理那些你可以做一些明智的事情的事情。底层git和 TCP 堆栈已经足够智能,可以处理诸如不可靠连接之类的瞬态问题,因此,如果失败,通常您不能再试一次并希望这次能正常工作。
出于批处理作业的目的,只需将错误传播到上游,以便您的脚本正常失败。例如,在.bat文件中,您需要编写类似的内容,以便<command> || exit 1脚本在出现错误时终止,而不是盲目地继续。
现在,在您的 3 个具体案例中:
git失败,所有这些情况都会产生GitCommandErrorNoSuchPathErrorRepo仅当本地存储库的路径不存在时才会在初始化时引发