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