有没有使用子进程来克隆git仓库的Python方式?我渴望使用你推荐的任何模块。Python的方式克隆git仓库
36
A
回答
19
有http://gitorious.org/git-python/。在之前和内部没有听说过它,它依赖于git可执行文件的某处;另外,他们可能有很多bug。但它可能值得一试。
如何克隆:
import git
git.Git("/your/directory/to/clone").clone("git://gitorious.org/git-python/mainline.git")
(这不是很好,我不知道这是否是做它的支持方式,但它的工作)
1
随着德威提示你应该能够做到:
from dulwich.repo import Repo
Repo("/path/to/source").clone("/path/to/target")
这仍然是非常基本的 - 跨对象和裁判它复制,但是,如果你创建一个非纯仓库还没有创建工作树中的内容。
60
使用GitPython将为您提供一个良好的Git Python接口。
例如,安装它(pip install gitpython
),用于克隆一个新库后,您可以使用clone_from功能:注意
from git import Repo
Repo.clone_from(git_url, repo_dir)
: GitPython需要混帐被安装在系统上,而且您可以通过系统的PATH 。
4
4
我的解决方案是非常简单和直接的。它甚至不需要手动输入释义/密码。
这里是我的完整代码:
import os
import sys
path = "/path/to/store/your/cloned/project"
clone = "git clone [email protected]:/your/project/name.git"
os.system("sshpass -p your_password ssh [email protected]_localhost")
os.chdir(path) # Specifying the path where the cloned project has to be copied
os.system(clone) # Cloning
print "\n CLONED SUCCESSFULLY.! \n"
相关问题
- 1. 克隆git仓库
- 2. 克隆git仓库的.git目录
- 3. 而克隆一个Git仓库
- 4. 如何用GitLab克隆git仓库
- 5. 无法从github克隆git仓库
- 6. 如何从VM中克隆Git仓库?
- 7. SSH错误克隆Git仓库
- 8. 使团队克隆git仓库
- 9. 使用SSH克隆git仓库
- 10. 将克隆的git仓库转换成分叉的仓库
- 11. 鬼鬼祟祟地克隆git仓库的方法?
- 12. 克隆Git仓库时,克隆仓库中的某些文件/目录是否被删除?
- 13. 我可以从克隆SVN仓库我的项目源到Git仓库
- 14. 合并两个git仓库,一个一个git-CVS克隆,一个GIT中 - svn的克隆
- 15. 克隆使用子树的Git仓库的步骤
- 16. 当我从github远程仓库克隆时,远程仓库的哪个分支被克隆到本地仓库?
- 17. 如何合并svn仓库与git克隆仓库(通过github从SVN导入)
- 18. 将Git仓库克隆到新仓库中 - 无需提交历史记录
- 19. 的Git SVN克隆不使用SVN仓库
- 20. 从bitbucket克隆git仓库的密码问题
- 21. 无法克隆没有master分支的git仓库开始
- 22. 连接和克隆远程git仓库之间的区别
- 23. 如何获取仓库所有克隆上的git标签?
- 24. 克隆git仓库的问题(新手问题)
- 25. 如何克隆只有非主分支的git仓库?
- 26. OpenShift来源于自己的git仓库克隆错误
- 27. 如何克隆github的本地git仓库?
- 28. 克隆的Git仓库,无法制作几个文件夹
- 29. 如何git克隆所有分支位于根的SVN仓库?
- 30. Git克隆特定版本的远程仓库
gitpy,我想它会被称为 – SilentGhost 2010-03-18 18:58:06
@SilentGhost:你的意思是*此* gitpy? http://github.com/vmalloc/gitpy from http://www.ryaari.com/blog/?p=9 – VonC 2010-03-18 19:01:15
看起来像是GitPython(http://pypi.python.org/pypi/GitPython,http: //gitorious.org/git-python),我不认为它有一个克隆方法,但我敢打赌你可以添加一个......但是在内部它将不得不调用'git clone'。 – Cascabel 2010-03-18 19:04:07