2017-03-29 11 views
1

JGitにその親をチェックアウトするように指示する方法?私はマスターブランチに以下のような状況を持っている場合たとえば、:JGitチェックアウト前のコミット

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

とにつながる:

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

は、私は次のようになり、そのJGitからコマンドを呼び出すしたいと思います

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

しかし、私は何も起こりません上記の精算書を呼び出すとき:HEADはe46dcafをコミットするために移動される状態。私はまた、ヘッドを移動しません。次の文、全体で来ている:

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

への移動を達成するためにどのように任意のアイデア前のチルダ(〜)またはキャレット(^)シンボルに基づいてコミット、およびかどうかさえありますJGit APIで可能ですか?

答えて

2

最初に、の式を解決する必要があります。これは前回のコミットを指します。次に、結果のコミットIDをチェックアウトすることができます。例えば

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

注コミットdetaches HEADをチェックアウトすること。

関連する問題