【发布时间】:2019-03-20 20:16:49
【问题描述】:
我需要 grep/sed 与 git 存储库中的提交关联的标签。
我试过这个命令:
git ls-remote -t <remote-project> | grep -E '<commit-sha>' | sed -e 's,.* -e refs/tags/,,' -e 's/\^{}//'
但我在这里得到的是:
<commit-sha1> refs/tags/<tag1>
<commit-sha1> refs/tags/<tag2>
我只想获取 tag1 和 tag2 以便我可以将它们分开并将其存储在变量中以供进一步使用。
我也试过了:
git ls-remote -t <remote-project> | grep -E '<commit-id>' | sed -e 's,.* -e refs/tags/,,' -e 's/\^{}//' | cut -f 2
输出:
refs/tags/<tag1>
refs/tags/<tag2>
仍然不是我想要的,我不认为这是一种紧凑的方式。
一次提交的预期输出:
tag1
tag2
编辑:
git ls-remote -t ssh://somerepo.git
这个命令给了我带有相关标签信息的提交列表。
输出:
b63862c999a160add6b7617b3deb40a399aaa0e7 refs/tags/tag1
b63862c999a160add6b7617b3deb40a399aaa0e7 refs/tags/tag2^{}
1a761add5189d037e4b713a000aa650c740f624e refs/tags/tag3
a8723b64a0d70f7d92ad65d3535ea13a9d6cfc2b refs/tags/tag4^{}
【问题讨论】: