Ref 对象的 getPeeledObjectId() 和 getObjectId() 有什么区别?

2024-04-06

我正在使用 jgit api 来实现项目的构建、部署功能(在本地机器中)。我通过以下命令通过命令提示符提交了整个源代码(java项目)

  1. git add .
  2. git commit -a -m "Initial_Source"

    这里我得到的提交 ID 为cb96c685a5a4338f852a782631df8d1cf5dca21d

  3. git tag Initial_Source cb96c685a5a4338f852a782631df8d1cf5dca21d

    [cb96c685a5a4338f852a782631df8d1cf5dca21d 已提交]

  4. git push

  5. git push --tags

但是当我尝试获取提交 ID 来获取 Peeled ObjectId() 时,它正在返回null

我的代码是

Ref tag = git.getRepository().getRef("Initial_Source");
Ref peeledRef = git.getRepository().peel(tag);
return peeledRef.getPeeledObjectId(); -- this is returning null

但不是getPeeledObjectId()我尝试使用getObjectId()。它给出了commitId。但我想知道什么时候使用getPeelObjectId() and getObjectId().

那些方法是什么?


getPeeledObjectId() 方法在 a 上始终为 null无注释(轻量级)标签 https://git-scm.com/book/en/v2/Git-Basics-Tagging:

 git tag Initial_Source cb96c685a5a4338f852a782631df8d1cf5dca21d

这适用于带注释的标签

git tag -a Initial_Source cb96c685a5a4338f852a782631df8d1cf5dca21d
# or
git tag -m "Initial Source" Initial_Source cb96c685a5a4338f852a782631df8d1cf5dca21d

由于您的标签是指向commit(引用自git.getRepository().peel(tag)), getObjectId()获取它的 id,没有什么可以再次“剥离”:你已经有了提交。
See "带注释的标签和不带注释的标签有什么区别? https://stackoverflow.com/q/11514075/6309"

See porcelain/ListTags.java example https://github.com/centic9/jgit-cookbook/blob/f01714f1fda6cafad9850194d76c182508702907/src/main/java/org/dstadler/jgit/porcelain/ListTags.java#L42-L54:它考虑了两种标签:

List<Ref> call = git.tagList().call();
for (Ref ref : call) {
    System.out.println("Tag: " + ref + " " + ref.getName() + " " + ref.getObjectId().getName());

    // fetch all commits for this tag
    LogCommand log = git.log();

    Ref peeledRef = repository.peel(ref);
    if(peeledRef.getPeeledObjectId() != null) {
        // Annotated tag
        log.add(peeledRef.getPeeledObjectId());
    } else {
        // Lightweight tag
        log.add(ref.getObjectId());
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ref 对象的 getPeeledObjectId() 和 getObjectId() 有什么区别? 的相关文章

随机推荐