有没有一种方法可以在 JGit 中通过哈希查找文件
Is there a method to find a file by hash in JGit
我正在用 JGit 编写一个 Java 程序来处理本地 Git 存储库。我想知道是否有一种方法可以通过 JGit 中的哈希找到提交的文件,就像命令 git file-cat -p 在终端中所做的那样?具体来说,给定文件的哈希值,如果之前已经提交,程序应该 return 文件内容,否则,return null。要检索的文件可以来自任何以前的提交。
我找到了解决我问题的教程:https://www.codeaffine.com/2014/10/20/git-internals/
这里是本教程的核心代码,对应命令 git file-cat:
ObjectReader objectReader = repository.newObjectReader();
ObjectLoader objectLoader = objectReader.open( blobId );
int type = objectLoader.getType(); // Constants.OBJ_BLOB
byte[] bytes = objectLoader.getBytes();
String helloWorld = new String( bytes, "utf-8" ) // Hello World!
我正在用 JGit 编写一个 Java 程序来处理本地 Git 存储库。我想知道是否有一种方法可以通过 JGit 中的哈希找到提交的文件,就像命令 git file-cat -p 在终端中所做的那样?具体来说,给定文件的哈希值,如果之前已经提交,程序应该 return 文件内容,否则,return null。要检索的文件可以来自任何以前的提交。
我找到了解决我问题的教程:https://www.codeaffine.com/2014/10/20/git-internals/
这里是本教程的核心代码,对应命令 git file-cat:
ObjectReader objectReader = repository.newObjectReader();
ObjectLoader objectLoader = objectReader.open( blobId );
int type = objectLoader.getType(); // Constants.OBJ_BLOB
byte[] bytes = objectLoader.getBytes();
String helloWorld = new String( bytes, "utf-8" ) // Hello World!