JGit checkout commit anterior

¿Cómo decirle a JGit que revise a su padre? Por ejemplo, si tengo una situación como la siguiente en la twig principal:

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

Me gustaría llamar un command de JGit que se parecería a algo así como:

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

y resultaría en el estado donde HEAD se e46dcaf para comprometer e46dcaf :

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

Sin embargo, cuando llamo a la statement de pago anterior no sucede nada. También me he encontrado con la siguiente afirmación, que tampoco mueve HEAD:

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

¿Alguna idea de cómo lograr pasar a la confirmación previa basada en los símbolos tilde (~) o caret (^), y si es posible incluso con la API de JGit?

En primer lugar, debe resolver la expresión que apunta a la confirmación anterior. Luego puede verificar el ID de confirmación resultante.

Por ejemplo:

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

Tenga en count que el control de un compromiso separa HEAD .