2015-08-05 2 views
0

Я хочу клонировать git-репозиторий с параметрами (--recursive, -b <branch>), но я получаю следующую ошибку.Ошибка репозитория клонирования GitPython

Traceback (most recent call last): 
    File "./git-clone.py", line 15, in <module> 
    r = git.Repo.clone(repo_dir, b=branch, recursive=git_url) 
TypeError: unbound method clone() must be called with Repo instance as first argument (got str instance instead) 

Вот мой код:

#!/usr/bin/env python 

import git 
import os 
import shutil 


git_url = "<url>..." 
repo_dir = "/home_local/user/git-repository" 
branch = "branch" 

if os.path.exists(repo_dir): 
    shutil.rmtree(repo_dir) 

r = git.Repo.clone(repo_dir, b=branch, recursive=git_url) 

Если я заменяю git.Repo.clone с git.Repo.clone_from его работает нормально, но эта команда не принимает мои параметры.

ответ

2

попробовать:

r = git.Repo.clone_from(git_url, repo_dir, branch=branch, recursive=True) 

Первый аргумент, где вы клонировать из (удаленного хранилища). Второй аргумент - это то, где вы хотите сохранить клон. Все остальные аргументы передаются команде git-clone. например --branch="branch" и --recursive. Вероятно, вы должны придерживаться длинных имен аргументов, а не сокращений. Поскольку рекурсивный флаг присутствует или нет, его значения могут быть только True или False.

Смежные вопросы