Я пытаюсь сделать небольшую программу для моих пользователей для основных действий для git и других. И я сталкиваюсь с множеством проблем, чтобы клонировать частный удаленный репозиторий.Clone репозиторий со всей ветвью из удаленного репозитория с GitPython
Я имею следующую конфигурацию: Python 3.4 для Windows GitPython Ssh соединения etablished на удаленном сервере.
Вот мой код:
print(blue + "Where to clone repos ?")
path_repo = input(cyan + "> " + green)
try:
assert os.path.exists(path_repo)
except AssertionError:
print(red + "Path does not exist")
continue
print(blue + "Name of Repos :")
name_repo = input(cyan + "> " + green)
remote_path = "[email protected]:/home/git/repos/{0}.git".format(name_repo)
local_path = "{0}/{1}".format(path_repo, name_repo)
# Repo.clone_from(remote_path, local_path)
repo = Repo.clone_from(remote_path, local_path)
#print(repo.git.fetch())
#print(repo.git.pull())
#print(repo.git.status())
Это не вызывает ошибку, но стоп скрипт в конце и блокирует терминал (дайте мне бесконечную пустую строку без >>>
)
После запуска, что, если я поеду в Git Bash и напечатаю git status
, у него вроде бы нет ветки, только init. Поэтому я добавляю три последние строки своего кода, чтобы увидеть, что изменилось, но ничего.
Если в Git Bash набираю git pull
, он хорошо тянуть мастер филиал ...
Если somenone может решить мою проблему, пожалуйста?
Где я сделал ошибку?
Благодаря
Насколько я вижу, вы не закончили отвечать на вопрос; как получить '--all' передан команде' git clone'. –
Когда я это делаю: '$ git clone --' (нажмите вкладку 2 раза здесь) Я получаю это: ' --bare --local --no-hardlinks --reference --template = --branch - зеркало --origin --shared --upload-pack --depth --no-checkout --quiet --single-branch', так что вы можете видеть опцию '--all' не отображается. И когда я пытаюсь его заставить: '$ git clone --all error: unknown option \' all'' ... такой опции нет. Подробнее здесь: https://git-scm.com/docs/git-clone Итак, чего вы хотите достичь, предоставив несуществующий вариант 'git clone'? – mbdevpl
Кроме того, в исходном вопросе ничего не найдено о флаге '--all'. Во всяком случае, для чего вам это нужно? Git извлекает все удаленные ветви по умолчанию, а затем, если вам нужно какое-либо из них, вы просто выполняете 'git checkout some-branch'. Если он не существует, но существует 'origin/some-branch', будет создана новая ветвь' some-branch', вычеркнута и будет отслеживать происхождение. – mbdevpl