推送到远程仓库(例如Google源代码仓库)时,git标签丢失。

4
我刚刚建立了一个本地的git仓库,并将其复制到了远程仓库,基于谷歌的“Cloud Source Repository”。这个过程大部分都顺利完成,但标签没有被复制。我有一些旧的Google仓库,以同样的方式构建(据我所记),它们确实有标签。因此,我不确定发生了什么。
具体步骤如下:
- 创建本地git仓库(在Ubuntu 18.04机器上使用Git 2.17.1), - 添加一些文件并提交它们, - 添加一些标签(例如:git tag -a V1.0.0 -m "The initial working version"), - 更新并添加更多的文件和标签(这是为了我的团队编写培训指南), - 然后设置一个Google的仓库,通过Google SDK机制连接到它,并执行git push --all google命令。
所有这些步骤似乎都很顺利,除了远程仓库中没有标签。git tags命令的输出如下所示,而且我可以在gitk GUI中看到标签。因此,问题不在于本地仓库。标签只是没有进入Google的仓库。
有人之前遇到过这个问题吗?或者能否建议我接下来该查看什么?
$ git tag
V1.0.0
V1.0.1
V1.1.0
V2.0.0

推送输出如下:无错误。
git push --all google
Counting objects: 25, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (25/25), 5.03 KiB | 2.51 MiB/s, done.
Total 25 (delta 7), reused 0 (delta 0)
remote: Resolving deltas: 100% (7/7)
To https://source.developers.google.com/p/<REDACTED>/r/git_test
 * [new branch]      master -> master

你尝试过 git push --tags 吗? - John Pavek
1
刚试了一下,完美运行!有点惊讶的是,**--all** 实际上并不意味着 全部,而且我很确定以前不需要显式地推送标签,但我猜事情变了。 - P Burke
1个回答

4

感谢John指出了期望的行为!根据git-scm.com/book,“默认情况下,git push命令不会将标签传输到远程服务器。”

因此,在我的情况下,需要显式使用:git push --tags google,或者在典型情况下使用git push --tags origin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接