Клонирование только основной ветви с использованием PyGit2

Я хочу клонировать некоторые удаленные репозитории, но получить только основную ветку.

Мой код в настоящее время получает все ветви.

def init_remote(repo, name, url):
    # Create the remote with a mirroring url
    remote = repo.remotes.create(name, url, "+refs/*:refs/*")
    # And set the configuration option to true for the push command
    mirror_var = "remote.{}.mirror".format(name)
    repo.config[mirror_var] = True
    # Return the remote, which pygit2 will use to perform the clone
    return remote

pygit2.clone_repository(url, "../../clones/"+location, remote=init_remote)

1 ответ

Ваш код не только получает все ветви, он также отражает удаленное, а также отслеживает удаленные ветви, что может привести к некоторой запутанной компоновке.

Вы уже устанавливаете свою собственную refspec, поэтому вам нужно установить refspec для загрузки ветки по умолчанию. Если вы знаете это, вы можете изменить код, чтобы получить только одну ветку

remote = repo.remotes.create(name, url, "+refs/heads/master:refs/heads/master")
Другие вопросы по тегам