使用JGit获取指定分支的文件内容
程序员文章站
2022-05-23 08:48:32
...
/** * 获取指定分支、指定文件的内容 * @param gitRoot git仓库目录 * @param branchName 分支名称 * @param fileName 文件名称 * @return * @throws Exception */ public static String getContentWithFile(String gitRoot, final String branchName, String fileName) throws Exception { final Git git = Git.open(new File(gitRoot)); Repository repository = git.getRepository(); repository = git.getRepository(); RevWalk walk = new RevWalk(repository); Ref ref = repository.getRef(branchName); if (ref == null) { //获取远程分支 ref = repository.getRef(REF_REMOTES + branchName); } //异步pull ExecutorService executor = Executors.newCachedThreadPool(); FutureTask<Boolean> task = new FutureTask<Boolean>(new Callable<Boolean>() { @Override public Boolean call() throws Exception { /*//创建分支 CreateBranchCommand createBranchCmd = git.branchCreate(); createBranchCmd.setStartPoint(REF_REMOTES + branchName).setName(branchName).call();*/ return git.pull().call().isSuccessful(); } }); executor.execute(task); ObjectId objId = ref.getObjectId(); RevCommit revCommit = walk.parseCommit(objId); RevTree revTree = revCommit.getTree(); TreeWalk treeWalk = TreeWalk.forPath(repository, fileName, revTree); //文件名错误 if (treeWalk == null) return null; ObjectId blobId = treeWalk.getObjectId(0); ObjectLoader loader = repository.open(blobId); byte[] bytes = loader.getBytes(); if (bytes != null) return new String(bytes); return null; }
上一篇: Android Pull解析xml
下一篇: Xml解析之----Pull
推荐阅读
-
使用VBA读取指定Excel文件指定Sheet指定单元格的内容
-
Linux怎么使用命令查看文件指定行数的内容?
-
ASP 获取 post 提交的内容并保存到指定文件
-
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法教程
-
使用JGit获取指定分支的文件内容
-
ASP 获取 post 提交的内容并保存到指定文件
-
使用MATLAB提取文本文件txt text中指定行的数据 数值 指定内容的数值
-
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法_jquery
-
Linux怎么使用命令查看文件指定行数的内容?
-
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法教程