在我的本地存储库中,我声明了多个遥控器。 git fetch --all --tags
(需要Git 1.9+)的内容如下:
➜ project.git git:(stable-3.0.x) ✗ git fetch --all --tags
Fetching upstream
From github.com:upstream/project
- [tag update] v3.0.0 -> v3.0.0
Fetching foo
From github.com:foo/project
- [tag update] v3.0.0 -> v3.0.0
...
以下是我的问题:如何检查,列出和比较各种遥控器中存在的不同标签?
git ls-remote --tags
似乎只列出了最后一组提取的,因此也是本地存在的标签。
答案 0 :(得分:0)
git ls-remote
中似乎存在一个长期存在的错误:
$ git ls-remote origin
676699a0e0cdfd97521f3524c763222f1c30a094 HEAD
222c4dd303570d096f0346c3cd1dff6ea2c84f83 refs/heads/branch
676699a0e0cdfd97521f3524c763222f1c30a094 refs/heads/master
d41117433d7b4431a188c0eddec878646bf399c3 refs/tags/tag-foo
$ git ls-remote origin --tags
$ git ls-remote --tags origin
d41117433d7b4431a188c0eddec878646bf399c3 refs/tags/tag-foo
(我发现有关此错误的报告可以追溯到git 1.5.4。)因此,只有先使用--tags
,然后命名您想要联系的遥控器,它才有效。
由于ls-remote
一次只能执行一个远程操作,因此您必须收集所有遥控器的列表,然后进行迭代。