Клонирование только основной ветки с помощью 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)

person George L    schedule 10.01.2016    source источник


Ответы (1)


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

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

remote = repo.remotes.create(name, url, "+refs/heads/master:refs/heads/master")
person Carlos Martín Nieto    schedule 19.04.2016