0
내가 JGit 아주 새로운 그리고 난이 망할 놈의 명령의 구현을 찾고 있어요 커밋 표시합니다.)는 내에서 변경할 모든 파일이
나는 RevCommit
을 가졌지 만, git show
으로 표시되는 정보는 어떻게 얻을 수 있습니까?
내가 JGit 아주 새로운 그리고 난이 망할 놈의 명령의 구현을 찾고 있어요 커밋 표시합니다.)는 내에서 변경할 모든 파일이
나는 RevCommit
을 가졌지 만, git show
으로 표시되는 정보는 어떻게 얻을 수 있습니까?
커밋을 구성하는 파일을 나열하려면 TreeWalk
을 사용해야합니다. TreeWalk
은 트리의 개체 ID (SHA-1)로 초기화 된 다음 해당 항목을 트래버스하는 데 사용할 수 있습니다. 예를 들어
:
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.setRecursive(true);
treeWalk.reset(commit.getId());
while(treeWalk.next()) {
String path = treeWalk.getPathString();
String blobId = treeWalk.getObjectId(0);
// ...
}
getPathString()
현재 진입 (저장소 상대) 경로를 반환한다.
getObjectId()
은 개체 ID가 얻어 져야하는 트리 이터레이터를 식별하는 인덱스를 필요로합니다. 여기서 첫 번째이자 유일한 트리 이터레이터는 주어진 커밋의 트리에 대해 암시 적으로 reset()
에 의해 생성 된 것을 지정합니다.
커밋을 구성하는 _all_ 파일 또는 _changed_ 파일 (즉, 상위 커밋과 다른 파일)을 나열 하시겠습니까? –
답변에 대해 rüdiger에게 감사드립니다. 변경된 파일을 원합니다 .. – szumbe
그런 다음이를 반영하여 질문을 다시 작성해야합니다. 'git show'는 자식 객체 (commit/blob/tree)의 _contents_를 나열합니다. _changes_를 나열하려면'git diff'를 사용하십시오. JGit을 사용하여이를 달성하는 방법은 다음을 참조하십시오. http://stackoverflow.com/questions/27361538/how-to-show-changes-between-commits-with-jgit –