(git checkout tagname
後)私は
foreach(var tag in git.GetRepository().GetTags()){
}
でGitのタグを一覧表示することを試みたが、私は、このタグに関連する方法を見つけることができませんでした外れの枝にNGitと現在のタグを知っておく必要があります最後のコミットと一緒に。
(git checkout tagname
後)私は
foreach(var tag in git.GetRepository().GetTags()){
}
でGitのタグを一覧表示することを試みたが、私は、このタグに関連する方法を見つけることができませんでした外れの枝にNGitと現在のタグを知っておく必要があります最後のコミットと一緒に。
Gitは、現在チェックアウトされているタグを保存しません。この情報に確実にアクセスしたい場合は、タグをチェックアウトしている間に個別に保管する必要があります。
しかし、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(キー)と、見つかった最初の参照(値)が格納されます。
あなたの場合、以前にチェックアウトしたタグは、返されたrefの中にあるはずです。このコミットのために複数のタグが作成された場合、そのタグのいずれかが返される可能性があります。必ずしも以前にチェックアウトされたものである必要はありません。
EDIT 2016年7月11日
また、あなたはgit.tagList().call()
でリポジトリからすべてのタグのリストを取得し、問題のコミットを指すタグを検索することができます。
先のタグポイントにコミットIDを見つけることの特殊性のため、この質問に対する私の答えを参照してください:あなたは答えは問題を解決したと感じた場合は緑色のチェックをクリックして「受け入れ」として、それをマークしてくださいList commits associated with a given tag with JGit
マーク。これにより、まだ回答のない古い投稿に焦点を当てることができます。 –