このバージョン番号のリストを検討してください。
0.3.0
0.3.1
...
0.3.8
0.3.9
0.3.10
0.3.11
git tag
次の順序でそれらを印刷します。
0.3.0
0.3.1
0.3.10
0.3.11
0.3.2
...
git tag
アルファベット順ではなく「数字」順に印刷する方法はありますか?または回避策-おそらく、出力をパイプでつなぎ、希望どおりに並べ替えることができるプログラムですか?
このバージョン番号のリストを検討してください。
0.3.0
0.3.1
...
0.3.8
0.3.9
0.3.10
0.3.11
git tag
次の順序でそれらを印刷します。
0.3.0
0.3.1
0.3.10
0.3.11
0.3.2
...
git tag
アルファベット順ではなく「数字」順に印刷する方法はありますか?または回避策-おそらく、出力をパイプでつなぎ、希望どおりに並べ替えることができるプログラムですか?
serv ~: echo -e "1.1.1\n1.3.2\n1.1.10\n1.1.2" | sort -n -t. -k1,1 -k2,2 -k3,3
1.1.1
1.1.2
1.1.10
1.3.2
sort
ここで使用されているオプションの内訳:
-n
-数値の文字列の順序を使用して並べ替えます(したがって10
、後になります1
)-t.
-フィールド区切り文字としてピリオドを使用します-k1,1
最初のフィールド(および最初のフィールドのみ)にソートキーを定義します-k2,2
2番目のフィールド(および2番目のフィールドのみ)にソートキーを定義します-k3,3
3番目のフィールド(および3番目のフィールドのみ)にソートキーを定義しますより簡単な解決策:
serv ~: echo -e "1.1.1\n1.3.2\n1.1.10\n1.1.2" | sort -V
1.1.1
1.1.2
1.1.10
1.3.2
sort
ここで使用されているオプションの内訳:
間もなく(Git 1.9.x / 2.0、2014年第2四半期)、適切にソートされた出力を取得するためにのみgitを使用できるようになります。
NguyễnTháiNgọcDuy()によって作成されたcommit9ef176bのcommitb6de0c6を参照してください。pclouds
--sort=<type>
特定の順序で並べ替えます。
サポートされているタイプは次のとおりです。
- "
refname
"(辞書式順序)、- "
version:refname
"または"v:refname
"(タグ名はバージョンとして扱われます)。
-
ソート順を逆にするには、「 」を前に付けます。
あなたの場合:
git tag -l --sort=version:refname
いくつかのテストケース:
git tag foo1.3 &&
git tag foo1.6 &&
git tag foo1.10
これがあなたが得るものです:
# lexical sort
git tag -l --sort=refname "foo*"
foo1.10
foo1.3
foo1.6
# version sort
git tag -l --sort=version:refname "foo*" >actual &&
foo1.3
foo1.6
foo1.10
# reverse version sort
git tag -l --sort=-version:refname "foo*" >actual &&
foo1.10
foo1.6
foo1.3
# reverse lexical sort
git tag -l --sort=-refname "foo*" >actual &&
foo1.6
foo1.3
foo1.10