我爲我的項目的構建,部署功能使用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