Путь Python для клонирования git-репозитория

Есть ли способ Python без использования подпроцесса для клонирования репозитория git? Я хочу использовать любые модули, которые вы рекомендуете.

  • ImportError: нет модуля с именем downsample
  • Для чего __init__.py?
  • класс не определен, несмотря на импорт
  • Модуль Python и __all__
  • python получает переменную модуля по имени
  • Python: доступ к «областям модуля» vars
  • Лучшие практики разработки и развертывания Django и VirtualEnv
  • Heroku / python не удалось обнаружить set buildpack
  • В Python, как я могу получить доступ к пространству имен основного модуля из импортированного модуля?
  • Как вы проверяете, делится ли число на другое число (Python)?
  • Ошибка PIL: модуль _imaging C не установлен
  • Развертывание локального приложения django с помощью openshift
  • 5 Solutions collect form web for “Путь Python для клонирования git-репозитория”

    Существует http://gitorious.org/git-python/ . Не слышал об этом раньше и внутренне, он полагается на наличие исполняемого файла git; Кроме того, у них может быть много ошибок. Но это может стоить попробовать.

    Как клонировать:

     import git git.Git().clone("git://gitorious.org/git-python/mainline.git") 

    (Это не хорошо, и я не знаю, поддерживается ли это способ, но он сработал.)

    Использование GitPython даст вам хороший интерфейс python для Git.

    Например, после установки ( pip install gitpython ), для клонирования нового репозитория вы можете использовать функцию clone_from :

     from git import Repo Repo.clone_from(git_url, repo_dir) 

    Примечание. GitPython требует, чтобы git был установлен в системе и доступен через систему PATH.

    Gigub libgit2 binding, pygit2 обеспечивает однострочный клонирование удаленного каталога:

     clone_repository(url, path, bare=False, repository=None, remote=None, checkout_branch=None, callbacks=None) 

    Мое решение очень просто и прямо. Это даже не требует ручного ввода парафраза / пароля.

    Вот мой полный код:

     import os import sys path = "/path/to/store/your/cloned/project" clone = "git clone gitolite@10.10.10.55:/your/project/name.git" os.system("sshpass -p your_password ssh user_name@your_localhost") os.chdir(path) # Specifying the path where the cloned project has to be copied os.system(clone) # Cloning print "\n CLONED SUCCESSFULLY.! \n" 

    С советом Dulwich вы должны уметь:

     from dulwich.repo import Repo Repo("/path/to/source").clone("/path/to/target") 

    Это по-прежнему очень просто – он копирует объекты и ссылки, но пока не создает содержимое рабочего дерева, если вы создаете не-голый репозиторий.

    Python - лучший язык программирования в мире.