foreach(var tag in git.GetRepository().GetTags()){
}
함께 망할 놈의 태그를 나열하는 것을 시도했다
(A git checkout tagname
후) 분리 된 지점에서 NGit와 현재의 태그를 알아야하지만이 태그를 관련하는 방법을 찾을 수 없습니다 마지막 커밋과 함께.
foreach(var tag in git.GetRepository().GetTags()){
}
함께 망할 놈의 태그를 나열하는 것을 시도했다
(A git checkout tagname
후) 분리 된 지점에서 NGit와 현재의 태그를 알아야하지만이 태그를 관련하는 방법을 찾을 수 없습니다 마지막 커밋과 함께.
힘내는 현재 체크 아웃 된 태그를 저장하지 않습니다. 이 정보에 안전하게 액세스하려면 태그를 체크 아웃하는 동안 별도로 저장해야합니다.
그러나 Git은 특정 커밋을 가리키는 모든 참조를 나열 할 수 있습니다.
ObjectId headCommitId = repository.resolve(Constants.HEAD);
Map<ObjectId, String> refs = git.nameRev()
.add(headCommitId)
.addPrefix(Constants.R_TAGS)
.call();
스 니펫은 Java로 작성되었지만 C#으로 쉽게 변환되어야합니다. 먼저 HEAD 참조를 확인한 다음 NameRevCommand
을 호출하여이 커밋 ID를 가리키는 모든 참조를 나열합니다.
addPrefix()
은 refs/tags/
네임 스페이스의 참조로 제한됩니다.
리턴 된 맵은 확약 ID (키)와 찾을 수있는 첫 번째 참조 (값)를 보유합니다.
이전에 체크 아웃 한 태그는 반환 된 참조 사이에 있어야합니다. 이 커밋을 위해 여러 개의 태그가 생성 된 경우 이전에 체크 아웃 한 태그가 아닌 모든 태그를 반환 할 수 있습니다.
편집 2016년 7월 11일
또는, git.tagList().call()
와 저장소에서 모든 태그의 목록을 얻고 질문에 커밋을 가리키는 태그를 검색 할 수 있습니다. 당신은 대답이 문제를 해결 느끼는 경우 녹색 확인을 클릭하여 '승인'으로 List commits associated with a given tag with JGit
이 그것을 표시하십시오
이 (가)에있는 태그 점에 ID를 커밋 찾는 특수성이 질문에 대한 내 대답을 참조하십시오 표. 이렇게하면 여전히 답변이없는 이전 게시물에 집중할 수 있습니다. –