美文网首页git程序员Git
JGit--实现Git命令操作的Java API

JGit--实现Git命令操作的Java API

作者: 顽童大了已没那么笨 | 来源:发表于2016-12-13 16:25 被阅读7238次

问题来源:最近在做一个项目,其中有一块需要用户上传代码到服务器中,然后分析用户所传的代码,传代码最直接的方式就是用户打个包上传,但是后期再分析代码的时候还要代码实现解压上传的代码,操作起来比较复杂。

解决方案

与小伙伴们讨论了下,是不是可以通过代码仓库来解决问题,于是上网找了找,发现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资源介绍

相关文章

  • JGit--实现Git命令操作的Java API

    问题来源:最近在做一个项目,其中有一块需要用户上传代码到服务器中,然后分析用户所传的代码,传代码最直接的方式就是用...

  • 对git的浅薄学习

    对Git 的浅薄学习 gitbash类似一种操作系统,通过命令行来实现操作 git的一些简单指令 |操作| 命令 ...

  • Redis从入门到精通2:Redis常用操作

    本节介绍Redis常用的操作。Redis有两种操作方式:命令行和Java API。 1.命令行 set:设置键值 ...

  • Git 基本操作语句

    简单命令操作、远程Git和local的同步实现流程: 1、把git上的代码clone到本地 $ git clone...

  • Git解决代码修改冲突

    Git 操作说明 Git下载项目 操作命令 Git上传提交 操作命令 Git解决同一文件多人修改冲突 操作步骤

  • zk 原生API 连接

    对zk 操作的方式有一下几种: 基于java的 shell命令,zkCli.sh 原生的java api zkC...

  • GIt 操作补充

    常用的git操作命令 常用的git操作命令已经能够满足日常的工作需求 现补充一些高级命令 git branch -...

  • git 命令

    一、git 操作命令 1. 基本命令 (顺序操作) git init 初始化一个git仓库 git stat...

  • Git 工具手册

    Git基本操作手册 Git相关命令极其丰富多样,可以实现很多独特的操作,希望大家习惯查阅相关资料学习使用,或者在遇...

  • HDFS支持的访问方式

    √ HDFS Shell命令 √ HDFS Java API √ HDFS REST API √ HDFS ...

网友评论

    本文标题:JGit--实现Git命令操作的Java API

    本文链接:https://www.haomeiwen.com/subject/gehbmttx.html