436

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

git tag -n5

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

非常に大きな数を使用できると思います。ここで使用できる最大数はいくつですか? どのコンピュータでも同じですか?

更新:私はこれについて考えるのに多くの時間を費やしましたが、メッセージの一部が非常に長い場合、必ずしも各メッセージの全体を表示したくないと思います。大量のメッセージを表示する必要があるという特別な必要はありませんでした (タグメッセージを含め、私が書くすべてのものに長々と巻き込まれるという私自身の傾向を除いて)。必ずしもメッセージ全体が表示されるとは限らないという考えが気に入らなかった. しかし、情報が多すぎるのも悪いことです。

4

9 に答える 9

417

これを試してみると、すべてのタグが注釈と 9 行のメッセージとともに一覧表示されます。

git tag -n9

も使えます

git tag -l -n9

特定のタグをリストする場合:

git tag -l -n9 v3.*

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

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

于 2012-12-31T13:40:54.177 に答える
151
git tag -n99

短くて甘い。これにより、各タグ アノテーション/コミット メッセージから最大 99 行がリストされます。git tag の公式ドキュメントへのリンクは次のとおりです。

タグごとに最大 99 行しか表示されないという制限は、実際には良いことだと思います。1 つのタグに実際に 99 行以上ある場合、残りのすべてを表示したくない場合がほとんどです。ラインはあなたですか?タグごとに 99 行を超えて表示したい場合は、いつでもこの数を増やすことができます。

つまり、大量のタグ メッセージを見たい特定の状況や理由があると思いますが、どの時点でメッセージ全体を見たくないのでしょうか? 999行を超える場合は?10,000? 100万?要点は、通常、表示される行数に上限を設けることは理にかなっており、この数によってそれを設定できるということです。

タグを見るときに一般的に見たいものについて議論しているので、次のようなものをエイリアスとして設定することはおそらく理にかなっています(以下のIulian Onofreiのコメントから):

git config --global alias.tags 'tag -n99'

git tag -n99つまり、タグを表示するたびに入力する必要はありませんか? エイリアスが設定されたら、タグを表示したいときはいつでもgit tags、端末に入力するだけです。個人的には、これよりも一歩進んで、よく使用するすべてのコマンドに対してさらに省略された bash エイリアスを作成することを好みます。その目的のために、次のようなものを .bashrc ファイルに追加できます (Linux および同様の環境で動作します)。

alias gtag='git tag -n99'

その後、タグを表示したいときはいつでも、タイプするだけですgtag。エイリアス パス (git エイリアスまたは bash エイリアスなど) をたどることのもう 1 つの利点は、個人的にさらにカスタマイズを追加できる場所がすでに用意されていることです。以下の私のコメントなどのように、特定の方法でそれらを)。最初のエイリアスを作成するという煩わしさを乗り越えたら、カスタマイズした方法で作業したい他のもののためにエイリアスを作成するのがいかに簡単であるかがわかりますが、それはgit log別の質問/回答用に保存しましょう.

于 2014-10-14T17:33:14.453 に答える
27

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

for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done
于 2013-01-07T21:35:38.870 に答える
14

きれいとは言えませんが、次のようなスクリプトまたはエイリアスを作成できます。

for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done
于 2011-03-18T22:58:22.280 に答える
11

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

git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6
于 2014-10-01T01:11:35.987 に答える
5
git tag -l --format='%(contents)'

また

git for-each-ref refs/tags/ --format='%(contents)'

すべてのタグの完全な注釈メッセージを出力します (署名されている場合は署名を含みます)。

  • %(contents:subject)最初の行のみを出力します
  • %(contents:body)最初の行と署名なしで注釈を出力します (有用なテキストのみ)
  • %(contents:signature)PGP署名のみを出力します

詳細については、man git-for-each-ref「フィールド名」セクションを参照してください。

于 2020-08-25T17:01:48.187 に答える
2

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

于 2013-09-26T13:22:58.613 に答える