web-dev-qa-db-ja.com

すべてのタグをメッセージ全体と共にgitで一覧表示するにはどうすればいいですか?

私はgitにすべてのタグを完全な注釈またはコミットメッセージと共にリストしてもらいたいのです。このようなものは近いです:

git tag -n5

タグメッセージの最初の5行までしか表示されないことを除けば、これは私が望んでいることとまったく同じです。

私は非常に大きな数を使うことができると思います。私がここで使うことができる最も高い数は何ですか?すべてのコンピュータで同じですか?

UPDATE:これについて考える時間はずっとありましたが、今ではメッセージ全体が異常に長い場合は必ずしも表示したくないと思います。このようなものは私にとってはうまくいくようです。

git tag -n99

タグメッセージが本当に99行より長い場合は、全部見たくはありません。しかしGitは非常に複雑で柔軟性があります。どのような場合にこれが最善の解決策にならないでしょうか。投稿されたソリューションの多くが-lオプションを使用していることに気付きましたが、検索するパターンを指定するためだけのものではありませんか?

303
git tag -n99

短くて甘い。注釈/コミットメッセージから最大99行まで表示されます。これがgitタグの公式ドキュメントへのリンクです。 http://git-scm.com/docs/git-tag

90

これを試してみましょうそれはすべてのタグのためのアノテーションと9行のメッセージと共にすべてのタグをリストします:

git tag -n9

また使用することができます

git tag -l -n9

特定のタグを一覧表示する場合

git tag -l -n9 v3.*

(例えば、上記のコマンドは "v3"で始まるタグのみを表示します。)

-l、 - list指定したパターン(またはパターンが指定されていない場合はall)に一致する名前のタグを一覧表示します。引数なしで "git tag"を実行すると、すべてのタグも一覧表示されます。パターンはシェルのワイルドカードです(つまり、fnmatch(3)を使用して照合されます)。複数のパターンを指定できます。いずれかが一致すると、タグが表示されます。

293
Zubair

Mark Longair's answergit showを使用)は、質問で望まれるものに近いです。ただし、そのタグの指すコミット、およびそのコミットの完全パッチも含まれます。コミットはタグとは無関係である可能性があるため(タグがキャプチャしようとしているコミットは1つだけです)、これは望ましくない場合があります。私は以下が少し良いと思います:

for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done
24
Paul Price

きれいには程遠いですが、次のようなことをするスクリプトやエイリアスを作成することができます。

for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done
11
Mark Longair

最後のタグメッセージのみ

git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6
9
gaRex

私はコマンドラインでこれを行うことを好みますが、Webインターフェースを気にせずGitHubを使用する場合は、https://github.com/user/repo/tagsにアクセスして各タグの横にある「...」をクリックして注釈を表示できます。

2
agouge