`

根据版本号获取git库中的文件内容

    博客分类:
  • git
阅读更多
public ByteArrayOutputStream read(String revision) {
        ByteArrayOutputStream out = null;
        Repository repository = null;
        try {
            //gitDir表示git库目录
            Git git = Git.open(gitDir);
            repository = git.getRepository();
            RevWalk walk = new RevWalk(repository);
            ObjectId objId = repository.resolve(revision);
            RevCommit revCommit = walk.parseCommit(objId);
            RevTree revTree = revCommit.getTree();

            //child表示相对git库的文件路径
        TreeWalk treeWalk = TreeWalk.forPath(repository, child, revTree);
            ObjectId blobId = treeWalk.getObjectId(0);
            ObjectLoader loader = repository.open(blobId);
            loader.copyTo(out);
        } catch (IOException e) {
            logger.error("", e);
        } catch (JGitInternalException e) {
            logger.error("", e);
        } finally {
            if (repository != null)
                repository.close();
        }

        return out;
    }

 

1
2
分享到:
评论
4 楼 baidu_nod 2014-07-22  
请问你一下,你知道如何使用gradle来获取git版本号吗
3 楼 sophia2046234 2013-07-04  
您好,能请问下,刚刚接触Git,最近要搭建个基于JGit.jar的Jgit插件,现在对具体某个文件的版本进行diff,并push到远端server这块还是比较迷茫,请您指点下~
2 楼 yonge812 2013-03-22  
mzxueyun 写道
TreeWalk treeWalk = TreeWalk.forPath(repository, child, revTree)

按照方面的方法结果 treeWalk  返回的是一个null

确定吗?我们这代码已经在线上运行了..
1 楼 mzxueyun 2013-03-19  
TreeWalk treeWalk = TreeWalk.forPath(repository, child, revTree)

按照方面的方法结果 treeWalk  返回的是一个null

相关推荐

    gradle-gitVersioner-plugin,从git历史记录中提取有用的versioncode和versionname.zip

    《gitVersioner-plugin:从git历史记录中轻松获取版本号》 版本管理是软件开发中的重要环节,尤其是在大型项目和团队协作中。Git作为最流行的分布式版本控制系统,为我们提供了强大的版本控制功能。然而,如何从Git...

    Git常用的33个命令

    git reset [文件名]:将暂存区的文件取消暂存,或者切换到指定版本git reset --hard [版本号] git commit -m "描述信息" [文件名]:将暂存区的文件修改提交到版本库 git log:查看日志 远程仓库命令: git remote:...

    git官方版,稳定版本

    Git是世界上最先进的分布式版本控制系统,尤其在软件开发领域中被广泛应用。这个“git官方版,稳定版本”提供了最新的稳定版本,确保用户可以享受其高效、可靠的服务。Git由Linus Torvalds创建,最初是为了管理Linux...

    Git代码管理。版本号2.15.0,64位

    Git是世界上最流行的分布式版本控制系统,它允许开发人员追踪和管理代码变更,特别是在团队协作的软件开发项目中。标题提到的是Git的2.15.0版本,这是一个64位的构建,特别为Windows操作系统(包括Win7、Win8和Win10...

    使用gogs创建Git远程仓库

    在IT行业中,Git是一款非常流行的分布式版本控制系统,用于跟踪对软件项目文件的修改。而Gogs(Go Git Service)则是一个轻量级、易于搭建的自助Git服务,它可以帮助我们快速地创建和管理Git远程仓库。本文将详细...

    keil自动识别软件代码版本号,自动命名bin文件

    因此,自动根据代码版本号命名bin文件可以避免混淆,保证每个bin文件都能与对应的源代码版本对应。 "RenameBinApplication"可能是一个定制的Keil插件或者脚本,它的功能是在编译完成后,自动检测当前代码的版本信息...

    git版本控制学习

    - 使用`git commit -m "提交说明"`命令将暂存区中的文件正式提交到版本库中。 - 提交时需要附带一个提交说明,描述此次提交的内容或目的。 #### 四、查看仓库状态及修改内容 1. **检查状态**: - 使用`git ...

    git安装文件及汉化补丁

    对于macOS用户,可以通过Homebrew或Mac App Store获取Git。Linux用户则通常通过包管理器(如Ubuntu的`apt-get`,CentOS的`yum`或Fedora的`dnf`)进行安装。 安装过程中,你需要选择默认的配置,或者根据个人需求...

    GIT中文版本

    在提供的压缩包文件中: 1. `Setup_v2.19.1.0.exe` 是Git的安装程序,版本号为2.19.1.0。这个版本可能包含了基本的Git命令行工具和Git GUI,是Git的基础组成部分,用于管理代码仓库,执行提交、推送、拉取等操作。 ...

    linux的git压缩包

    在Git的版本命名规则中,主版本号(如2)代表重大功能更新,次版本号(如7)代表次要功能或改进,修订号(如2)则通常用于修复bug和小的优化。因此,2.7.2意味着这是一个相对成熟且稳定,具有多个小改进的版本。 ...

    GitBash windows 64位版本

    压缩包中的文件"Git-2.27.0-64-bit.exe"是GitBash的安装程序,版本号为2.27.0。这个版本的GitBash引入了若干改进和修复,包括增强的性能、新的命令行选项以及对Git功能的更新。安装此程序后,用户可以在Windows系统...

    c# 获取程序集版本号

    你可以在项目的属性文件中设置版本号,例如: ```csharp [assembly: AssemblyVersion("1.2.*")] [assembly: AssemblyFileVersion("1.2.*")] ``` `*`在这里代表默认值,通常表示内部版本号或修订号。每次编译时...

    Java进阶版本管理工具Git全套视频教程

    6.9.3从版本库删除,但是不删除本地 6.10 忽略提交 7. Git 的基本使用02-TortoiseGit 操作本地仓库(分支) 7.1 分支的概念 7.2 为何要使用分支 7.3 创建分支 7.4 分支的查看切换 7.4.1查看分支 7.4.2切换分支 7.5 分支...

    VUE项目构建打包生成Git信息(VERSION和COMMITHASH文件).docx

    Git-revision-webpack-plugin是一个非常有用的Webpack插件,它可以在构建过程中自动生成VERSION和COMMITHASH文件,这些文件包含了Git的版本号和提交哈希值。这样可以帮助我们了解项目的精确构建状态,尤其是在部署多...

    Git远程版本库idea

    ### Git远程版本库Idea详解 #### 一、概述 Git是一种分布式版本控制系统,它能够高效地处理从小到大的项目版本管理以及多线程开发工作。对于开发者来说,掌握如何在IntelliJ IDEA中配置并使用Git是非常重要的技能...

    git服务器安装 gitblit

    - 修改`P:\git\gitblit-1.8.0\gitblit.cmd`文件中的Java命令行参数。 - 修改`P:\git\gitblit-1.8.0\authority.cmd`文件中的Java命令行参数。 - **运行授权服务**:双击`authority.cmd`启动授权服务,按提示操作...

    git使用手册.doc

    - **版本库**:位于工作区中的隐藏目录 `.git`,存储版本控制信息。 - **暂存区**:工作区内的重要组成部分,用于临时存放准备提交至版本库的文件修改内容。 3. **添加文件至版本库**: - 在工作区内创建新文件...

    idea集成git版本控制

    1. **添加文件**: 在项目中对需要提交的文件右键,选择“Git” -> “Add”,这样选中的文件会被添加到暂存区。 2. **提交更改**: 在IDEA右下角打开“Version Control”视图,点击“Commit”按钮,输入提交信息后点击...

    Git TortoiseGit小乌龟及中文安装包

    Git-2.41.0.3-64-bit是Git的最新稳定版,版本号表明这是Git的第2.41次重大更新,3代表该版本的小型修正或改进,而64-bit则表示该版本适用于64位操作系统。这个版本可能包含了性能优化、新功能添加以及已知问题的修复...

    git clone 最新版

    在描述中提到的"git clone 最新版",通常意味着要获取Git的最新稳定版本。这可以通过访问Git的官方网站或者使用包管理器来实现。对于Windows用户,可以下载类似`Git-2.29.2.2-64-bit.exe`这样的安装程序,这是一个...

Global site tag (gtag.js) - Google Analytics