在派生仓库中,上游git标签未显示

22

我在上游推送了带有主分支代码的1.11.57标签。我正在使用Bitbucket和Git Bash。

这是图片描述

我fork了上述存储库,并将fork存储库作为我的本地主分支。但在我的fork存储库中,1.11.57标签未显示。

这是图片描述

我检查了存储库同步,也没有问题。这是什么原因,如何获取上游标签到我的fork,然后到我的本地。


你能分别展示原始仓库和派生仓库的提交截图吗(例如 https://ibb.co/f1YbqT)? - Marina Liu
实际上,我可以在我的上游看到带有标签版本的提交。但是在 fork 中,我看不到带有标签的提交。 - Harshana
1
你的问题解决了吗?如果是,能否标记答案呢?这也将有助于其他遇到类似问题的人 :) - Marina Liu
4个回答

34

确保你已经从第一个克隆的仓库中推送了所有标签。使用SourceTree:在“推送”对话框中勾选“Push all tags”复选框。

只有这样,分支才会反映出新的标签。

既然你已经 fork 了,将原始仓库添加为远程仓库,并获取标签:

cd /path/to/fork/clone
git remote add upstream url/original/repo
git fetch --tags upstream
# Push the tags from my local to my master branch
git push -f --tags origin master

(您也可以使用SourceTree 添加新远程
(并且您可以通过SourceTree的“获取和存储所有标签”选项)

)

我正在使用Bitbucket和Git Bash。 - Harshana
好的,那么我在答案中提到的Git命令应该会有所帮助。 - VonC
当我从本地输入以下命令时,它成功显示远程存储库和分支。我认为我的上游没有问题。git remote show origin获取URL: https://bitbucketpath/myservice.git 推送URL: https://bitbucketpath/myservice.git 主分支: master 远程分支: master 跟踪 - Harshana

5

为什么在派生存储库中不能显示上游git标签?

在派生存储库中缺少标签主要是由于先进行了派生操作,然后在派生之后将缺失的标签(例如v1.11.57)推送到上游存储库。

将git标签从上游存储库同步到派生存储库的方法

您可以使用以下命令将缺失的标签从上游存储库同步到派生存储库:

# In local forked repo
git remote add upstream <URL for upstream repo> -f
git push origin --tags

然后你会发现在fork的仓库中出现了缺失的标签。

3
我通过以下命令完成了它。
在我的本地机器上,
git remote add upstream https://upstreamurl.git
git fetch upstream

现在标签已经在我的本地,我将其推送到主分支

git push -f origin master

那么,基本上我推荐的是什么? - VonC
是的,我已经在你的回答中添加了推送命令。如果您接受此编辑,我将把您的回答标记为正确答案。 - Harshana

1
只是为了补充上面的内容,我还需要运行以下命令:
git fetch upstream --tags

为使其实际从上游拉取标签,请按照以下步骤操作(如果像我一样标签未显示):在先前提到的“git fetch upstream”之后添加以下内容。

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