Git:如何列出和比较你的git遥控器中的标签?

时间:2014-02-21 13:58:59

标签: git git-tag

在我的本地存储库中,我声明了多个遥控器。 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似乎只列出了最后一组提取的,因此也是本地存在的标签。

1 个答案:

答案 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一次只能执行一个远程操作,因此您必须收集所有遥控器的列表,然后进行迭代。