java代码操作git_JGit--实现Git命令操作的Java API
问题来源:最近在做一个项目,其中有一块需要用户上传代码到服务器中,然后分析用户所传的代码,传代码最直接的方式就是用户打个包上传,但是后期再分析代码的时候还要代码实现解压上传的代码,操作起来比较复杂。
解决方案
与小伙伴们讨论了下,是不是可以通过代码仓库来解决问题,于是上网找了找,发现Git操作是可以用JGit这个API来实现的,于是就选择了让用户直接给一个Github Repository的链接,不仅能让系统自动下载代码,还省去了解压步骤。
JGit
JGit 提供了一个Git 命令的Java API,例如,你可以在 JGit 里面用
git.commit().setMessage( "My first commit" ).call();
代替
git commit -m "First commit"
JGit 命令都有一个 call() 方法,在命令被建立之后用来实际执行它。这些类的命名是在各自的 Git 命令后加上后缀命令。虽然有些命令提供一个公共构造函数,还是建议使用 Git 的工厂类来创建命令。
JGit示例
Java实现git clone操作,参考代码如下:
import java.io.File;
import org.eclipse.jgit.api.CloneCommand;
import org.eclipse.jgit.api.Git;
public class JGitUtil {
public static String cloneRepository(String url,String localPath)
{
try{
System.out.println("开始下载......");
CloneCommand cc = Git.cloneRepository().setURI(url);
cc.setDirectory(new File(localPath)).call();
System.out.println("下载完成......");
return "success";
}catch(Exception e)
{
e.printStackTrace();
return "error";
}
}
public static void main(String[] args)
{
String localPath = "/Users/XXX/Desktop/GitTest";
String url = "https://github.com/XXX/python3-webapp.git";
cloneRepository(url,localPath);
}
}
注意点:在使用JGit这个JAR包时,是依赖其他JAR包的;列举如下:
slf4j-api-1.7.9.jar
slf4j-log4j12-1.7.9.jar
log4j-1.2.17.jar
jsch-0.1.54.jar
除了git clone之外,还有很多其他操作,创建一个存储库,从远程获取内容,向历史版本中添加和删除文件,检查历史操作,并最终将更改的文件推回到原始存储库都可以用JGit实现。大家可以参考官网的API或者JGit资源介绍。
java代码操作git_JGit--实现Git命令操作的Java API相关推荐
- git代码托管 · 操作举例: “git bash here ”(全程操作讲解) - git命令篇
如何通过git进行代码托管?怎么操作?全程讲解说明,以git bash here为例. git使用案例:git代码托管: "git bash here "(全程操作讲解) 代码托管 ...
- VSCode自定义代码片段15——git命令操作一个完整流程
git命令操作一个完整流程 {// git'command// 15 如何自定义用户代码片段:VSCode =>左下角设置 =>用户代码片段 => 新建全局代码片段文件... =&g ...
- git 命令操作总结
git 命令操作总结 git: 分布式版本控制工具 (项目代码的维护管理 以及 团队协作开发,项目的历史版本穿梭 互相分享共享) GitHub 平台 全球国际化平台网站: GitHub.com 程序员 ...
- java代码对数据库数据的CRUD操作
java代码对数据库数据的CRUD操作 前言 一.CRUD.JDBC是什么? 二.操作步骤 1.连接mqsql数据库.加载数据库驱动 2.对数据库中的表进行增.删.改.查 总结 前言 对于刚刚学习完J ...
- java开发中常用的Git命令详解
java开发中常用的Git命令详解(IDEA内如何操作) 一:写这篇文章的目的是什么? 二:使用场景在哪里? 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具 2:项目 ...
- java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令
这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...
- git 命令操作手册大全
Desc: .git 是工作区的根目录,通过.git 定位版本库,shell 命令和 Linux 中一样.pull = fetch + merge,cat .git/config查看本地分支和远程分支 ...
- Git命令大全或者使用Git命令操作也是Git命令总结
Git的学习总结 学习Git的网站为: https://learngitbranching.js.org 闯关形式的学习方法,试用与电脑操作,手机端体验可能不佳 学习过程中会不断的进行提示,演示,然 ...
- source tree ui操作对应的git命令
UI操作的核心操作和我们平时用到git命令都一样,只是增加了一些参数,这些参数都是什么呢?下边时我最近用到的一些操作所对应的git命令,希望对大家有所帮助. 1. 获取: git -c diff.mn ...
最新文章
- 今天開始學習silverlight了
- 所谓移动IP是指(58);实现移动IP的关键技术是(59)。【答案】D B
- It is a distutils installed project and thus we cannot accurately
- C# Web实时消息后台服务器推送技术---GoEasy
- 中科院的java_java 中调用中科院分词系统
- 如何使ArrayList 线程安全
- python实训总结万能版3000字_实训总结万能版2000字范文五篇
- Python之数据类型总结
- 第二章 Java多线程入门类和接口
- 2018.10.01 NOIP模拟 卡牌游戏(贪心)
- python监控网页_【小白教程】Python3监控网页
- 第11章 Docker 中 Gitlab 的安装与配置
- Cookies的SameSite属性
- html编辑器如何设置滚动字幕,使用Axure RP为网页添加滚动字幕的具体操作步骤
- Linux 加密与解密应用
- SAP中采购订单修改触发重新审批的相关控制逻辑及测试
- 二级路由dhcp关闭连不上wifi_路由器的使用小技巧!
- 【学习OpenCV4】图像金字塔总结
- Page Visibility(页面可见性) API介绍、微拓展
- Mysql索引Hash和BTree的区别