GitPython如何克隆所有分支?

时间:2017-02-09 09:22:31

标签: python git gitpython

我找到了这个Bash脚本,它完成了同样的任务但是在Bash中。

使用GitPython创建存储库的完整备份,似乎无法弄清楚如何让所有分支显示而无需手动检查它们。

Repo.clone_from(repo, folder)

我在循环中使用这一行来复制repos中的所有文件。

2 个答案:

答案 0 :(得分:0)

for b in Repo.clone_from(repo, folder).remote[0].fetch():
   print(b.name)

答案 1 :(得分:0)

我最近偶然发现了这个线程,但是还没有找到任何解决方案,所以我酿造了自己的线程。它总比没有好,既不是最优的也不是漂亮的,但是至少它能起作用:

# Clone master
repo = Repo.clone_from('https://github.com/user/stuff.git', 'work_dir', branch='master')

# Clone the other branches as needed and setup them tracking the remote
for b in repo.remote().fetch():
    repo.git.checkout('-B', b.name.split('/')[1], b.name)

说明:

  1. 克隆master分支
  2. 获取远程分支名称
  3. 检出分支并根据需要创建它们

PS:我认为Gitpython还没有内置的方法来clone_from来做到这一点。