[英]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.