7

タグを使用して、リリース バージョンを識別し、タスクの「開発完了」コミットを識別しています。を実行するgit tagと、次のようなリストが表示されます。

> git tag
v0.1.0
task_1768
task_2011
task_1790
task_1341
v0.1.1
task_2043
task_2311
v0.1.2

すべてのタグがブランチのコミットを指していると仮定するとmaster、いくつかのタグ以降のすべてのタグを一覧表示する方法はありますか? たとえば、v0.1.2リリースに含まれるすべてのタスクのリストを生成するには、次のようなものを探しています (実際のコマンドではありません)。

> git tag -l "task_*" --since v0.1.1

次のような出力を取得します。

task_2043
task_2311

これを行う方法はありgit tagますか?

これを行う方法はありgit rev-listますか?

(または他のgitコマンド?)

アップデート

回答とコメントに基づいて、私が現在使用しているものは次のとおりです。

> git log v0.1.1.. --decorate | grep -Eow 'tag: ([a-zA-Z0-9.-_]*)' | awk '{ print substr($0, 6); }'
task_2043
task_2311
v0.1.2

> git log v0.1.1.. --decorate | grep -Eow 'tag: ([a-zA-Z0-9.-_]*)' | awk '{ print substr($0, 6); }' | grep -Eo 'task_.*'
task_2043
task_2311

2回目の更新

新しく選択された回答。これはまさに私が最初に探していたものです。はるかにエレガント。

> git tag --contains v0.1.1
v0.1.1
task_2043
task_2311
v0.1.2

> git tag --contains v0.1.1 | grep -Eo 'task_.*'
task_2043
task_2311
4

3 に答える 3

10

git tag --contains v0.1.1指定されたタグを含むすべてのタグが表示されます。つまり、履歴をさかのぼって指定されたタグにたどり着くことができるタグです。

于 2013-01-13T02:50:17.053 に答える
4

次の範囲を指定できますgit log

git log v1.1.0..

--decorateここで、タグを一覧表示するオプションを追加します。ログに追加して、リストを興味深いものだけに制限したり、「タグ」としてgrepしたりできるオプションは他にもあります。

git log v1.1.0.. --decorate | grep 'tag:'
于 2013-01-10T00:17:10.153 に答える
2

git rev-listからのリンクをたどることで到達可能なすべてのリビジョンを提供するために使用できます。ただし、 :masterからも到達できるものは除きます。v0.1.1

git rev-list --tags master --not v0.1.1

次に、それを実行できますgit describe

git describe --abbrev=0 --tags `git rev-list --tags master --not v0.1.1`

これにより、タグのコピーが複製される可能性があります(おそらく、v0.1.1それ自体が含まれる可能性があります)が、必要なリストを取得するための開始点となるはずです。

于 2013-01-10T00:25:40.417 に答える