批量Clone Git仓库代码

批量Clone Git仓库代码

问题

经常在工作中需要clone大量项目代码,仓库特别多,git一条命令一条命令下载太过于繁琐。

解决办法

使用GitPython

下载并安装GitPython

pip3 install GitPython

编写批量Clone代码

import argparse
import os
from concurrent.futures import ThreadPoolExecutor

from git import Repo

argparser = argparse.ArgumentParser("批量下载Git Repos")

argparser.add_argument("-p", "--project-path", type=str, required=True, help="项目地址,所有批量下载的repos都会存在这个目录下。")
argparser.add_argument("-m", "--multi-thread", default=False, action="store_true", help="开启多线程,默认False")

args = argparser.parse_args()

repos = [
	...  # 这里可以填入你想要clone的仓库地址
]


def bulk_clone_repos():

    def get_dest(git_repo_url:str):
        return os.path.join(args.project_path, git_repo_url.rsplit(".", maxsplit=1)[0].rsplit("/", maxsplit=1)[1])

    executor = ThreadPoolExecutor(max_workers=10)
    for repo in repos:
        print("Git clone: [{}]".format(repo))
        if args.multi_thread:
            executor.submit(Repo.clone_from, repo, get_dest(repo))
        else:
            Repo.clone_from(url=repo, to_path=get_dest(repo))

if __name__ == "__main__":
    bulk_clone_repos()

改进

其实repos可以通过文件方式读入可能会更好。

即如下

python3 bulk_git_clone.py -p xxx -m -r [file]

再编写一个可以管理项目repo的脚本,等到新人来的时候,直接用脚本生成他需要clone的repos列表文件,让他直接调用这个bulk_git_clone加上列表。

芜湖,起飞。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值