使用JGit操作git推送本地文件夹到远程仓库

  • springboot环境
1、pom.xml文件添加依赖
        <dependency><groupId>org.eclipse.jgit</groupId><artifactId>org.eclipse.jgit</artifactId><version>6.5.0.202303070854-r</version></dependency>

2、实现代码

/*** 项目发布功能* @param serviceInDto serviceInDto* @return Frtg0011ServiceOutDto*/@Overridepublic Frtg0011ServiceOutDto releaseProject(Frtg0011ServiceInDto serviceInDto) {Frtg0011ServiceOutDto serviceOutDto = new Frtg0011ServiceOutDto();FrtgConfigEntity configEntity = new FrtgConfigEntity();BeanUtils.copyProperties(serviceInDto, configEntity);//从这往下是有效代码//本地项目部分路径String basePath = commonEnv.getFrtgServerRoot() + "\\" + serviceInDto.getProjectId() + "\\"+ serviceInDto.getProjectCaseId() + "\\" + serviceInDto.getStageId();//避免查询结果为空导致空指针异常Optional<FrtgConfigEntity> configOpt = Optional.ofNullable(frtgConfigBaseMapper.select(configEntity));configOpt.ifPresent(config -> {
//            String frameType = config.getFrameType();//项目文件夹路径  + TYPE_PROJECT_NAME.get(frameType);String projectPath = basePath;File f = new File(projectPath);//如果本地文件夹为空则结束处理if(!f.isDirectory() || f.length() < 0) {return;}Git git = null;try {//初始化本地文件夹(相当于生成一个本地仓库),会在本地文件夹生成一个.git文件git = Git.init().setDirectory(new File(projectPath)).call();// 将新文件添加到暂存区;addFilepattern(".")表示添加文件夹下所有文件git.add().addFilepattern(".").call();// 提交更改到本地仓库git.commit().setMessage("Initial commit").call();} catch (GitAPIException e) {throw new RuntimeException("git commit failure");}//远程仓库地址String remoteUrl = config.getSvnRoot();//git用户名密码String username = config.getUser();String password = config.getPassword();//git分支String branch = "master";// 添加远程仓库并推送try {git.remoteAdd().setName("origin").setUri(new URIish(remoteUrl)).call();//push之前必须先pull,否则可能会有冲突,导致push操作不成功git.pull().setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password)).call();git.push().setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password)).setRemote("origin")//分支信息,.git文件夹下有一个config文件可以看到相关信息.setRefSpecs(new RefSpec("refs/heads/" + branch + ":refs/heads/" + branch)).call();} catch(GitAPIException | URISyntaxException e){System.out.println(e.getMessage());}git.close();});return serviceOutDto;}

3、代码问题

  • projectPath是本地需要上传的文件/文件夹路径 
  • remoteUrl 是远程仓库地址建议在浏览器打开网址验证一下是否可以访问
  • username、password是git账号密码
  • branch是远程仓库的分支,默认会上传到master
  • 我的配置信息是存在数据库的,所以有查询语句,大家根据自己的需求修改
  • 以上代码仅限于上传本地文件到远程仓库的master分支,暂不支持其他分支提交,场景是我在远程仓库新建一个分支,通过这份代码提交时会出来找不到该分支得问题,找了资料是远程跟本地没同步数据的问题,后续解决了会更新
  • 代码提交到远程仓库成功与否跟远程仓库权限是有关系得,我测试的时候使用的是公开得库,私人库应该会有账号权限问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式—行为型模式之命令模式

设计模式—行为型模式之命令模式 命令&#xff08;Command&#xff09;模式&#xff1a;将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行储存、传递、调用、增加与管理。 …

告别无法访问的Github

告别无法访问的Github 最近在使用github的时候又登不上去了&#xff0c;挂着VPN都没用 但是自己很多项目都存在github&#xff0c;登不上去那不得损失很大 所以一行必须整点儿特殊手段来访问&#xff0c;顺便分享一下 1.加速器 网上很多解决方案都是在分享各种加速器来登陆…

有效的括号[简单]

>优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串s&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 【1】左括号必须用相同类型的右括号…

Python中的进制转换——bin/oct/hex函数与int函数

简介 进制转换可能是一个工作学习中的常见小任务&#xff0c;手写相关函数显然很麻烦。 Python有相关内置函数一般能满足我们的需求。bin()、oct()、hex()将十进制转换为常用的二、八、十六进制&#xff0c;而 int()函数可指定第二个参数从而将其它进制转换为十进制。或许后者…

春招冲刺第二天——SQL学习

春招冲刺第二天 前言 MySQL学习&#xff1a;哔哩哔哩参考视频&#xff1a; 【中字】SQL进阶教程 | 史上最易懂SQL教程&#xff01;10小时零基础成长SQL大师 第一章 Mysql安装 视频前三节有教程&#xff0c;或自行查阅&#xff0c;不做赘述 课程资料和数据库数据的网盘&…

第八篇 交叉编译华为云Iot SDK到Orangepi3B

本篇主要内容&#xff1a; 一、交叉编译华为云Iot SDK依赖1.宿主机安装交叉编译工具链&#xff08;1&#xff09;选择下载交叉编译工具链&#xff08;2&#xff09;解压、添加环境变量、重启2.交叉编译依赖库&#xff08;0&#xff09; 准备工作&#xff08;1&#xff09; 交叉…

【多商户开源-BSD- Fecmall 电商平台】

关于Fecmall Fecmall 关于&#xff0c;Fecmall介绍 Fecbbc开源BSD多商户系统&#xff0c;真正开源&#xff0c;商用免费授权的多商户系统 Fecmall系统简介&#xff1a; 全称为Fancy ECommerce Shop&#xff0c; 着重于电商架构的研发优化&#xff0c;全新定义商城的架构体系&…

Vue3 Cli5按需导入ElementPlus

1、安装环境 node&#xff1a;16.20.0 vue&#xff1a;3.2.36 vue/cli&#xff1a;5.0.0 element-plus&#xff1a;2.2.25 element-plus/icons-vue&#xff1a;2.0.10 unplugin-auto-import&#xff1a;0.16.1 // 当前环境用这个包&#xff0c;不然会提示各种错误 unplugin-vu…

《微信小程序开发从入门到实战》学习九十一

7.1 视图容器组件 7.1.2 scroll-view组件 scroll-view组件时是滚动的视图容器&#xff0c;可在竖直方向或水平方向上滚动&#xff0c;展示超出屏幕高度或宽度的内容。 使用竖直方向滚动时&#xff0c;需要通过wxss的height样式给scroll-view设置一个固定高度&#xff0c;超出…

在Spring Boot中使用ZXing开源库生成带有Logo的二维码

在上一篇文章的基础上&#xff0c;我们将进一步扩展功能&#xff0c;实现在生成的二维码中嵌入Logo图片。这样的二维码更具个性化和识别度。让我们逐步完成这个功能。 第一步&#xff1a;引入Logo图片 首先&#xff0c;准备一张用作Logo的图片&#xff0c;并确保它的大小适中…

HIS项目介绍、项目环境准备、版本控制介绍、Git基础、Git指针、Git分支、Git标签

案例1&#xff1a;项目环境准备 环境准备说明&#xff1a; 本阶段共使用虚拟机6台&#xff0c;操作系统使用RockyLinux8.6 环境准备要求&#xff1a; 最小化安装即可配置好主机名和IP地址搭建好yum源关闭防火墙和SELinux!!! 项目主机列表 主机名IP地址规格角色服务Progra…

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 opencv可以运行在多个平台上面&#xff0c;当然windows平台也不意外。目前来说&#xff0c;opencv使用已经非常方便了&#xff0c;如果不想自己编译…

红黑树浅浅学习

红黑树浅浅学习 红黑树概念红黑树平衡性调整 红黑树概念 二叉树&#xff1a;二叉树是每个节点最多有两个子树的树结构。二叉查找树&#xff1a;又称“二叉搜索树”&#xff0c;左孩子比父节点小&#xff0c;右孩子比父节点大&#xff0c;还有一个特性就是”中序遍历“可以让结…

element-ui 打包流程源码解析——babel 相关

目录 1&#xff0c;babel-cli2&#xff0c;babel-core3&#xff0c;.babelrc3.1&#xff0c;presets3.2&#xff0c;plugins其他相关 该文章是为了更好的理解&#xff1a;element-ui 打包流程源码解析&#xff08;上&#xff09; 第2.5节 npm run build:utils 打包命令 "…

初识SQL注入

目录 注入攻击 SQL注入 手工注入 Information_schema数据库 自动注入 介绍一下这款工具&#xff1a;sqlmap 半自动注入 前面给大家通过学习练习的方式将XSS攻击的几种形式和一些简单的靶场和例题的演示&#xff0c;从本篇开始我将和小伙伴们通过边复习、边练习的方式来进…

Android 访问存储卡的三种主要的目录

Android 访问存储卡&#xff08;即外部存储&#xff09;通常涉及以下三种主要的目录&#xff1a; 1. 外部存储公共目录 (Public External Storage) 这些目录对所有应用都是可见的&#xff0c;并且不需要任何特殊权限来读取媒体文件。但是从Android 10&#xff08;API 级别 29…

深入浅出hdfs-hadoop基本介绍

一、Hadoop基本介绍 hadoop最开始是起源于Apache Nutch项目&#xff0c;这个是由Doug Cutting开发的开源网络搜索引擎&#xff0c;这个项目刚开始的目标是为了更好的做搜索引擎&#xff0c;后来Google 发表了三篇未来持续影响大数据领域的三架马车论文&#xff1a; Google Fil…

猫用空气净化器哪些好?五款宠物空气净化推荐!

如今&#xff0c;养宠物的家庭越来越多了&#xff01;家里因此变得更加温馨&#xff0c;但同时也会带来一些问题&#xff0c;比如异味和空气中的毛发可能会对健康造成困扰。 为了避免家中弥漫着异味&#xff0c;特别是来自宠物便便的味道&#xff0c;一款能够处理家里异味的宠…

第17章 项目干系人管理

文章目录 项目干系人管理包括识别能够影响项目或会受项目影响的人员、团体或组织&#xff0c;分析干系人对项目的期望和影响&#xff0c;制定管理策略有效调动干系人参与项目决策和执行。 17.1管理基础 17.1.1管理的重要性 每个项目都有干系人&#xff0c;他们会受到项目积极或…

PHP+SOCKET 服务端多进程处理多客户端请求 demo

服务端 $socket socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_bind($socket,0,95012) or die( server bind fail: . socket_strerror(socket_last_error())); socket_listen($socket,5);$child 0; //初始化子进程数 while(true){$client socket_accept($socket);$pi…