我能以合理的顺序制作git print xyz样式标签名称吗?

nfm*_*nfm 8 git version-numbering

请考虑以下版本号列表:

0.3.0
0.3.1
...
0.3.8
0.3.9
0.3.10
0.3.11
Run Code Online (Sandbox Code Playgroud)

git tag 将按以下顺序打印它们:

0.3.0
0.3.1
0.3.10
0.3.11
0.3.2
...
Run Code Online (Sandbox Code Playgroud)

我有什么方法可以git tag按照"数字"顺序打印它们而不是字母顺序?或者一个解决方法 - 也许是一个程序,我可以管道输出通过命令他们我想要的?

Amb*_*ber 15

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
Run Code Online (Sandbox Code Playgroud)

sort这里使用的选项细分:

  • -n- 使用数字字符串顺序排序(因此10后来1)
  • -t. - 使用句点作为字段分隔符
  • -k1,1 在第一个字段(并且只有第一个字段)上定义排序键
  • -k2,2 在第二个字段上定义一个排序键(只有第二个字段)
  • -k3,3 在第三个字段(并且只有第三个字段)上定义排序键


Set*_*son 4

更简单的解决方案:

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
Run Code Online (Sandbox Code Playgroud)

sort此处使用的选项的详细信息:

  • -V 按版本排序