/**
* 获取指定分支、指定文件的内容
* @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;
}
分享到:
相关推荐
使用 JGit 模拟 Git 原生 CLI Usage: java -jar jgit-cli-XX.jar [options] [command] [command options] Options: --help Default: false Commands: blame Show what revision and author last modified each ...
- 在JGit中,递归可能应用于遍历仓库中的所有文件、处理所有分支或递归合并子模块等场景。例如,如果一个项目包含多个子模块,递归调用可以帮助处理每个子模块的Git操作。 综上所述,这个"JGit工具类包"提供了一...
这个压缩包包含了JGit的主要库文件以及相关的文档资源。 首先,我们关注`org.eclipse.jgit-2.0.0.201206130900-r.jar`这个文件。这是一个JGit的核心库,包含了JGit的主要功能。2.0.0是其版本号,201206130900可能是...
赠送jar包:org.eclipse.jgit-5.10.0....使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Eclipse JGit提供了一个全面的Git API,包括对仓库的创建、添加文件、提交、分支管理、合并、重置、标签等功能。它还支持通过HTTP、SSH和本地文件系统访问Git仓库。JGit特别适用于需要在Java应用内部集成Git功能的...
**正文** 标题“matlab开发-JGit4MATLAB”揭示了一个关键...而`jgit.m`和`@JGit`目录下的内容则构成了实现这一功能的MATLAB代码。`egit2.png`可能提供了一个可视化的工作流程示例,帮助用户理解如何在实际应用中操作。
赠送jar包:org.eclipse.jgit-5.10.0....使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:org.eclipse.jgit.lfs-5.10.0.202012080955-r.jar; 赠送原API文档:org....使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持
JGit是一个可以用java来对git进行操作的插件,可以通过代码连接git...使用时添加pom依赖 <groupId>org.eclipse.jgit <artifactId>org.eclipse.jgit <version>3.7.0.201502260915-r 其他的常用操作已在代码中包含
org.eclipse.jgit-4.5.0.201609210915-r.jar 通过java执行git命令
3. **读取仓库信息**:获取仓库的Head引用,列出所有分支,查看提交历史等。 4. **文件操作**:添加、删除、修改文件,并将这些更改提交到仓库。 5. **分支管理**:创建、切换、合并分支,解决合并冲突。 6. **远程...
赠送jar包:org.eclipse.jgit.lfs-5.10.0.202012080955-r.jar; 赠送原API文档:org.eclipse.jgit.lfs-5.10...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中
silly-jgit 是 Git 核心库的纯 Java 实现。 标签:silly
JGit可以直接导入Eclipse,并从那里构建和测试。 可以使用或从命令行构建它。 CI使用Maven构建并在运行。 org.eclipse.jgit 可以独立运行的纯Java库,没有其他支持库。 它提供了一些类来读取和写入Git存储库并在...
JGit 是提供了一套类似 Git 命令的 Java API,可以方便地在程序中进行 git 操作 jgit-4.8.0.201706111038-r.jar
jgit-cookbook, 提供 JGit Java Git实现的示例和代码 Fragment jgit食谱 提供 JGit的Java Git实现示例和代码 Fragment 。JGit框架丰富多样,它有两层,一个低级的插件 api,以及一个高级别的系列的命令,比如 ...
Ant是Apache的一款构建工具,而JGit的Ant任务库则允许开发者在Ant构建脚本中直接使用JGit的功能,比如克隆、提交、拉取和分支管理等。这对于自动化构建流程非常有用,特别是对于那些依赖于Git版本控制的Java项目。 ...
标题中的"org.eclipse.jgit.pgm-3.2....学习和使用这两个开源项目,开发者不仅可以提升Git操作的技能,还能掌握如何利用API来增强多媒体内容展示。同时,参与社区和贡献代码也是提升自身编程能力和影响力的好机会。
JGit 是提供了一套类似 Git 命令的 Java API,可以方便地在程序中进行 git 操作