参考

关于git:如何浅深度克隆深度为1的特定提交? | 码农家园

1 常规方式

import git
git.Repo.clone_from(url, to_path=path, branch=branch, multi_options=[
    '--single-branch','-c http.sslCAinfo=' + SSL_VERIFY])
repo = git.Repo(path)
repo.git.reset('--hard', commit_id)

2 查询commit所在位置,再行下载

url_p = '/'.join(url.split('/')[0:3])
gl = gitlab.Gitlab(url_p, private_token=GIT_TOKEN, ssl_verify=False)
path_with_namespace = '/'.join(url.split('/blob/')[0].split('/')[3:])
project = gl.projects.get(path_with_namespace)
git.Repo.clone_from(url, to_path=path, branch=branch, multi_options=[
    '--single-branch', '--depth=1', '-c http.sslCAinfo=' + SSL_VERIFY])
repo = git.Repo(path)
repo.git.reset('--hard', commit_id)

3 快速下载(无法根据 .git 查询到当前准确的分支信息)

3.1 linux shell 方式

mkdir z_xxxx_1
cd z_xxxx_1
git init
git remote add origin https://gitlab.xxx.com/xxx/xxx
git fetch --depth 1 origin commitid
git checkout FETCH_HEAD

3.2 python 方式

import git
import datetime

datetime.datetime.now()

# 在文件夹里新建一个仓库,如果已存在git仓库也不报错不覆盖没问题
repo = git.Repo.init('/root/repo')
# 创建remote:
remote = repo.create_remote(name='origin', url='https://oauth:GIT_TOKEN@gitlab.xxx.com/xxx/xxx')
# fetch
repo.git.fetch('--depth', '1', 'origin', 'commitid')
# checkout
repo.git.checkout('FETCH_HEAD')
# 修改分支名 git symbolic-ref -q HEAD
repo.git.switch('-c', 'master')
# remote set-url
repo.remotes.origin.set_url(new_url='https://gitlab.xxx.com/xxx/xxx')

datetime.datetime.now()

GITLAB 下载指定 commit 的代码仓库相关推荐

  1. gitlab下载指定文件/文件夹

    首先要确定有账户密码(我输了个人gitlab账户密码不对,就添加了一下秘钥,然后就通过了) 生成秘钥过程博客传送门 cd到要存储clone文件的路径,如我的是0_git_DDVA,再初始化git $ ...

  2. git下载,上传代码到GitLab ; Untracked files (use “git add <file>...“ to include in what will be committed)

    环境:Windows10 git版本:git-2.12.2.2-64-bit.exe 安装git,安装成功文件夹上右键,菜单中会有git GUI here 及git Bash here选项 使用: 1 ...

  3. Windows下Git Bash Here怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)

    使用Git方式clone和下载源码的方式已经很常用,可以通过SSH.HTTPS等方式下载,此处不啰嗦介绍,今天主要分享的是如何在Windows环境下,使用Git Bash命令操作文件或文件夹上传的方法 ...

  4. git进入项目目录 windows_Windows下Git 怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)...

    使用Git方式clone和下载源码的方式已经很常用,可以通过SSH.HTTPS等方式下载,此处不啰嗦介绍,今天主要分享的是如何在Windows环境下,使用Git Bash命令操作文件或文件夹上传的方法 ...

  5. Gitlab(在线代码仓库托管软件)

    Gitlab 理论 Gitlab作为一个开源项目开始帮助团队在团建开发上进行合作,通过以业界领先的步伐交付新的功能为整个软件开发和操作生命周期提供了一个单独的应用平台.Gitlab提供了管理.计划.创 ...

  6. Git下载指定历史版本的代码(详细步骤)

    目录 一.克隆拉取指定版本代码 第1步:在本地某个空文件夹下右键 Git Bash Here.打开Git窗口. 第2步:在该文件夹下执行 git clone 克隆当前项目至该文件夹. 第3步:cd 进 ...

  7. curl快速下载GitHub Repo指定commit的tar.gz

    前言 有些时候需要下载GitHub仓库的tar.gz来做一些其他操作: 这时候可能最常见的就是去GitHub上找release或者tag里面有提供tar.gz的资源: 然后点击下载-- 但是有些场景可 ...

  8. git从gitlab下载代码,修改代码后上传代码到gitlab新建立的分支上

    git从gitlab下载代码,修改代码后上传代码到gitlab新建立的分支上 一.git clone下载代码 二.git pull确认更新到最新版本 三.查看仓库文件状态 四.查看远程地址 五.删除g ...

  9. 解决从github上下载代码仓库慢的问题

    一,打开命令提示符,最好之前准备一个仓库地址,这样下载下来的文件方便查看,这里打开你想要的下载根目录,进行下载. github上下载代码仓库慢的问题"> 二:复制代码仓库的地址 三:右 ...

最新文章

  1. ks检验正态分布结果_【学习】AD, RJ和KS哪种正态性检验是最好的?
  2. 浮动元素的display属性
  3. MySQL条件运算符的使用
  4. -1.#IND000 图像类型转换
  5. 很多文章是在下转载贴在此处,是为了自己以后遇到类似问题一时想不起来
  6. 使用Settings Bundle为程序添加设置项
  7. ApplicationContext容器的设计原理
  8. 一文教你轻松搞定ANR异常捕获与分析方法
  9. mysql 截取字符串部分值,Mysql字符串截取_获取指定字符串中的数据
  10. DQL -- 数据查询语言(查询不会修改数据库表记录)
  11. 移动端高清适配方案(解决图片模糊问题、1px细线问题)
  12. Hibernate重附(Reattach)和合并(Merge)操作的比较
  13. 过程FMEA步骤七:结果文件化
  14. Tomcat 修改启动端口号
  15. 6678运行 linux,Ubuntu下使用Acer6678-0BM扫描仪
  16. android apk自动安装包下载,Android 实现apk文件下载并自动安装
  17. Arcgis 镶嵌栅格报错999999,且生成x3569458.tif文件
  18. python列表元组字典
  19. 小学一年级20以内加减法题目自动生成(家长的福利,孩子的魔鬼)
  20. 二级路由器设置为何要关闭DHCP服务

热门文章

  1. smcsuperio黑苹果_基于OpenCore0.6.1的黑苹果安装,小白也能看
  2. Java 7 使用TWR(Try-with-resources)完成文件copy
  3. 一、 镜头主要参数工业相机镜头的参数与选型
  4. 微信支付订单、退款订单、转款订单的查询
  5. 程序多开限制———源码
  6. 演示如何使用偏最小二乘回归方法
  7. Tushare原学习文档(二投资参考数据)
  8. 华为OD德科面试+机试记录
  9. 软件版本alpha、Beta、RC、GA、DMR等含义
  10. (一)什么是Mybatis?Mybatis的优点是什么?