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

Git fetch tags only on a specific branch?

我正在使用

git fetch origin feature/blabla

具体说明我想要获取的内容。

是否可以使用我的版本并获取标签 沿着? (我不想使用 git fetch --tags 获取所有标签)。 这在另一个分支上尤其有用。

首先检查添加 --tags 是否会导入 all 标签。

如在 git/git commit 5328456 中所见,git fetch 手册页曾经说:

By default, tags are auto-followed.

This means that when fetching from a remote, any tags on the remote that point to objects that exist in the local repository are fetched.

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

OP Gabriel reports 那个:

git fetch --tags --prune --prune-tags origin feature/blabla

尽管它不起作用,因为 --all 仍然会获取所有标签。

所以行为一定有变化,并且不再自动关注标签。
Git 必须考虑每个标签,以检查它是否包含(引用提交)您要获取的分支。
这将大大延迟获取操作本身。

所以目前,--tags(意思是refs/tags/*)是唯一的选择。

或者复杂的脚本会:

  • 在单独的本地克隆中获取标签
  • 在本地检查每个导入的标签是否引用了分支
  • 从单独的本地克隆中获取单个标签到您的原始本地克隆存储库。