簡體   English   中英

JGit checkout上次提交

[英]JGit checkout previous commit

如何告訴JGit結賬其父母? 例如,如果我在主分支上遇到類似下面的情況:

c815b27 newestCommit (HEAD -> master, origin/master, master)
e46dcaf previousCommit
b2d6867 previousPreviousCommit

我想從JGit調用一個看起來像這樣的命令:

git.checkout().setName("c815b27~").call();

並將導致將HEAD移動到提交e46dcaf

c815b27 newestCommit (origin/master, master)
e46dcaf previousCommit (HEAD)
b2d6867 previousPreviousCommit

但是,當我打電話給上述結帳聲明時,沒有任何反應。 我還遇到了以下聲明,它也沒有移動HEAD:

git.checkout().setStartPoint("c815b27~").call();

任何想法如何實現基於波浪號(​​〜)或插入符號(^)符號移動到先前的提交,以及是否甚至可以使用JGit API?

首先,您需要解析指向上一次提交的表達式 然后,您可以簽出生成的提交ID。

例如:

ObjectId previousCommitId = git.getRepository().resolve( "HEAD^" );
git.checkout().setName( previousCommitId ).call();

請注意,簽出提交會分離HEAD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM