JGit 克隆并获取修订散列
JGit Clone and get the revision hash
我正在使用以下代码从 Java 克隆一个 git 存储库。我需要存储克隆的最新修订散列。
localRepo = new FileRepository(path);
git = new Git(localRepo);
Git.cloneRepository().setURI(url).setBranch("master")
.setDirectory(new File(path)).call();
git.close();
这里有关于获取修订散列的线索吗?
您可以获得包含 HEAD
的 ObjectId
的 Ref
,其中包含以下内容:
Ref head = repository.getAllRefs().get("HEAD");
System.out.println("Ref of HEAD: " + head + ": " + head.getName() + " - " + head.getObjectId().getName());
这会打印出类似这样的内容
Ref of HEAD: SymbolicRef[HEAD -> refs/heads/master=f37549b02d33486714d81c753a0bf2142eddba16]: HEAD - f37549b02d33486714d81c753a0bf2142eddba16
另见 related snippet in the jgit-cookbook
而不是 HEAD
,您还可以使用 refs/heads/master
之类的东西来获取分支 master
的 HEAD
,即使当前签出的是不同的分支。
我正在使用以下代码从 Java 克隆一个 git 存储库。我需要存储克隆的最新修订散列。
localRepo = new FileRepository(path);
git = new Git(localRepo);
Git.cloneRepository().setURI(url).setBranch("master")
.setDirectory(new File(path)).call();
git.close();
这里有关于获取修订散列的线索吗?
您可以获得包含 HEAD
的 ObjectId
的 Ref
,其中包含以下内容:
Ref head = repository.getAllRefs().get("HEAD");
System.out.println("Ref of HEAD: " + head + ": " + head.getName() + " - " + head.getObjectId().getName());
这会打印出类似这样的内容
Ref of HEAD: SymbolicRef[HEAD -> refs/heads/master=f37549b02d33486714d81c753a0bf2142eddba16]: HEAD - f37549b02d33486714d81c753a0bf2142eddba16
另见 related snippet in the jgit-cookbook
而不是 HEAD
,您还可以使用 refs/heads/master
之类的东西来获取分支 master
的 HEAD
,即使当前签出的是不同的分支。