当我输入命令时:
git tag -l
Run Code Online (Sandbox Code Playgroud)
我得到了这样的结果:
rc-0.9.0.0
rc-0.9.0.1
rc-0.9.0.10
rc-0.9.0.11
rc-0.9.0.12
rc-0.9.0.2
rc-0.9.0.3
rc-0.9.0.4
rc-0.9.0.5
rc-0.9.0.6
rc-0.9.0.7
rc-0.9.0.8
rc-0.9.0.9
Run Code Online (Sandbox Code Playgroud)
而不是我想要的:
rc-0.9.0.0
rc-0.9.0.1
rc-0.9.0.2
rc-0.9.0.3
rc-0.9.0.4
rc-0.9.0.5
rc-0.9.0.6
rc-0.9.0.7
rc-0.9.0.8
rc-0.9.0.9
rc-0.9.0.10
rc-0.9.0.11
rc-0.9.0.12
Run Code Online (Sandbox Code Playgroud)
如何对当前列表进行排序以获得此类结果?
我想找一个可以返回字符串一部分的linux命令.在大多数编程语言中,它都是substr()功能.bash是否有任何可用于此目的的命令.我希望能够做这样的事情......
substr "abcdefg" 2 3- 打印cde.
随后的类似问题:
当我git ls-remote在工作树中运行时,该命令输出原始仓库中的修订列表.出于某种原因,我对每个标签都进行了2次修订,对于同一标签的第二次修订,标签名称包括^{}
git ls-remote
From git@github.com:andris9/zzzzzz.git
d69e66d7c915b9682618b7f304b80cc0ae4c7809 HEAD
....
bb944682f7f65272137de74ed18605e49257356c refs/tags/v0.1.6
771a930dc0ba86769d6862bc4dc100acc50170fa refs/tags/v0.1.6^{}
a72251d945353a360087eb78ee75287c38a1c0e6 refs/tags/v0.1.7
d69e66d7c915b9682618b7f304b80cc0ae4c7809 refs/tags/v0.1.7^{}
Run Code Online (Sandbox Code Playgroud)
我用它创建标签
git tag -a v0.1.8 -m "tag message"
git push --tags
Run Code Online (Sandbox Code Playgroud)
从git-ls-remote 手册页的例子中没有这样的重复标签,所以也许我做错了什么?
我在git ls-remote命令的末尾偶然发现了两个奇怪的字符,我想知道这意味着什么?
0e4c39557ccb6789173c refs/tags/2011-11-04
966f8df553f18c486820 refs/tags/2011-11-04^{}
Run Code Online (Sandbox Code Playgroud)
你碰巧知道这个^ {}是什么意思吗?另外,为什么这个git标签似乎重复了?