2017-03-29 1 views
1

부모를 체크 아웃하는 방법을 JGit에게 알리는 방법은 무엇입니까? 나는 마스터 분기에 아래와 같은 상황이있는 경우 예를 들어, :JGit checkout 이전 커밋

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

및 초래 :

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

나는 같이 보일 것이라고 JGit에서 명령을 호출하고 싶습니다 HEAD가 e46dcaf를 저지하기 위해 이동 될 것입니다 상태 : 내가 호출 할 때

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

그러나, 위의 체크 아웃 문 아무 일도 일어나지 않습니다. 나는 또한 또한 머리를 움직이지 않는 다음과 같은 성명에 걸쳐 온 :

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

로 이동 달성하기 위해 모든 아이디어를 어떻게 이전 물결표 (~) 또는 캐럿 (^) 기호를 기반으로 커밋 여부는 짝수 JGit API로 가능합니까?

답변

2

먼저 표현식을 해결해야 이전 커밋을 가리킬 수 있습니다. 그런 다음 결과 커밋 ID를 체크 아웃 할 수 있습니다. 예를 들어

: 체크 아웃하는 것은 detaches HEAD을 커밋

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

참고.

관련 문제