在下面的程序片段中,我从远程位置克隆现有的repo,它可以正常工作。
然后我尝试克隆一个不存在的repo,这次调用git.Repo.clone_from()
从键盘请求一个名字和一个密码。
在我的应用程序中非常不希望在等待键盘输入时阻塞,因此如果repo不存在,我希望调用git.Repo.clone_from()
来抛出异常。
有没有办法导致这种情况发生,或以某种方式检测在我尝试克隆它之前是否在现有网址上存在git repo?
import git, shutil
DIRECTORY = '/tmp/clone'
def clone(url):
print(url)
shutil.rmtree(DIRECTORY, ignore_errors=True)
git.Repo.clone_from(url=url, to_path=DIRECTORY, b='master')
clone('https://github.com/ManiacalLabs/BiblioPixelAnimations.git/')
clone('https://github.com/ManiacalLabs/NONEXISTENT.git/')
答案 0 :(得分:2)
使用空的用户名和密码应该可以解决问题
clone('https://:@github.com/ManiacalLabs/BiblioPixelAnimations.git/')
clone('https://:@github.com/ManiacalLabs/NONEXISTENT.git/')
请注意:@
之前github.com
。