Git 仅在特定分支上获取标签?

问题描述 投票:0回答:1

我正在使用

git fetch origin feature/blabla

要非常具体地说明我想要获取什么。

  • 但是,这不会获取当前位于
    feature/blabla
    上的标签。
  • A
    git fetch
    (假设分支已签出)获取 也有标签。

是否可以使用我的版本并获取标签 沿着? (我不想用

git fetch --tags
获取所有标签)。 尤其是在另一个分支上时这非常有用。

git git-refspec
1个回答
6
投票

首先检查添加 --tags 是否导入所有标签。

git/git commit 5328456 中所示,

git fetch
手册页过去常说:

默认情况下,标签是自动关注的。

这意味着当从远程获取时,将获取远程上指向本地存储库中存在的对象的任何标签。

因此,如果您仅获取一个分支,则只应获取引用该分支的标签。

OP Gabriel 在评论中报道:

git fetch --tags --prune --prune-tags origin feature/blabla
虽然它不起作用,但因为 

--tags

 仍然获取所有标签。

所以行为一定已经改变,标签不再自动跟随。

Git 必须考虑每个标签,以便检查它是否包含(引用其提交)您想要获取的分支。
这会大大延迟获取操作本身。

所以目前,

--tags

(意思是
refs/tags/*
)是唯一的选择。

或者一个复杂的脚本:

    在单独的本地克隆中获取标签
  • 在本地检查每个导入的标签是否引用分支
  • 将该单个标签从单独的本地克隆获取到原始本地克隆存储库。
© www.soinside.com 2019 - 2024. All rights reserved.