我为我的项目的构建,部署功能使用jgit api(在本地计算机中)。我通过以下命令Ref对象的getPeeledObjectId()和getObjectId()之间有什么区别?
git add .
git commit -a -m "Initial_Source"
在这里,我得到提交id作为
cb96c685a5a4338f852a782631df8d1cf5dca21d
git tag Initial_Source cb96c685a5a4338f852a782631df8d1cf5dca21d
COMMITED经由命令提示整个源(java项目)[cb96c685a5a4338f852a782631df8d1cf5dca21d已提交]
git push
git push --tags
但是当我试图让通过getPeeledObjectId(提交ID),它返回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()
和getObjectId()
。
这些方法是什么?
笏是剥离?我应该在哪里使用getPeelObjectId()nd普通getObjectId() – Jothivignesh
@Jothivignesh皮尔正在解引用对象:对于轻量级标记,没有任何可以解引用:它已经指向提交。对于带注释的标签,您需要使用'getPeelObjectId()'来访问提交,因为'getObjectId()'会为您提供标签本身。这是轻量级和带注释标记之间区别的一部分,如https://stackoverflow.com/q/11514075/6309的答案中所述。 – VonC
所以如果我把-a或-m(带注释的标签)放在标签上,那么我可以从getPeelObjectId()获得commitId,否则我必须使用getObjectId().. rit? – Jothivignesh