Reputation: 1781
I want to clone git repository with parameters (--recursive
, -b <branch>
) but I get the following error.
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)
Here is my code:
#!/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)
If I replace git.Repo.clone
with git.Repo.clone_from
its working fine but this command not accept my parameters.
Upvotes: 1
Views: 1973
Reputation: 40693
try:
r = git.Repo.clone_from(git_url, repo_dir, branch=branch, recursive=True)
The first argument, is where you cloning from (the remote repository). The second argument is where you want to store the clone. All other arguments are passed on to git-clone
command. eg --branch="branch"
and --recursive
. You should probably stick to the long argument names rather than the abbreviations. Since the recursive flag is either present or not, it's values can only be True or False.
Upvotes: 4