我是使用git和标记的新手。我的团队成员运行以下命令:远程标记不在本地显示
git tag v1.27.1
git push origin v1.27.1
现在,当我git pull
,然后在我的环境中运行git tag
,我希望看到所有标签的列表。我可以看到以类似方式推送回购的其他标签,但不是这个特定的标签。 我想知道这个标签是如何丢失的。我怎样才能做到这一点?我应该怎么做?
另外,创建标签的团队成员在运行时可以在他的机器上看到标签git tag
谢谢!
我是使用git和标记的新手。我的团队成员运行以下命令:远程标记不在本地显示
git tag v1.27.1
git push origin v1.27.1
现在,当我git pull
,然后在我的环境中运行git tag
,我希望看到所有标签的列表。我可以看到以类似方式推送回购的其他标签,但不是这个特定的标签。 我想知道这个标签是如何丢失的。我怎样才能做到这一点?我应该怎么做?
另外,创建标签的团队成员在运行时可以在他的机器上看到标签git tag
谢谢!
不幸的是,git pull
默认不抓取代码。你需要运行git fetch --tags
,然后你会拥有它们。
git pull
和git fetch
的默认行为是仅检索当前引用可直接访问的标签。如果任何标签不是,那么这些不会被提取。通过--tags
到git fetch
告诉git你希望他们全部,无论他们是否可以通过当前的引用。
默认情况下,混帐推命令不变量进行传送到远程服务器。创建完成后,您必须将标签显式推送到共享服务器。此过程就像共享远程分支 - 您可以运行
git push origin <tagname>
。如果您有很多标签要一次推出,您还可以使用gta push命令的--tags [
git push --tags
]选项。这会将所有标签转移到远程服务器,而这些服务器并不在那里。现在,当别人克隆或从你的资料库翻出,他们将让所有的标签为好。
那我怎么看其他标签通过我的团队成员加入后,我的git拉? –
'git tag'会给你一个所有标签的列表。所以'git标签| grep v1.27.1'应该显示你之前缺少的标签。如果在用'--tags'获取后仍然没有看到它,那么我会用'git ls-remote'检查远程存储库,并检查列表中的标记。如果它不在那里,那它就永远不会把它放到你的中央仓库,所以开发者需要推它。 –
jszakmeister
感谢您的解决方案,git fetch --tags为我工作。但我完全不理解这一点。当我们说当前引用可以直接访问时,当前引用是什么意思? –