0

我在用

git fetch origin feature/blabla

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

  • 但是,这不会获取当前在feature/blabla.
  • A git fetchonly(假设分支已签出)也获取标签。

是否可以使用我的版本并同时获取标签?(我不想用 获取所有标签git fetch --tags)。特别是在另一个分支上时这很有用。

4

1 回答 1

4

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

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

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

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

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

OP Gabriel在评论中报告说:

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

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

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

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

或者一个复杂的脚本,它将:

  • 在单独的本地克隆中获取标签
  • 本地检查每个导入的标签是否引用分支
  • 从单独的本地克隆中获取该单个标签到您的原始本地克隆存储库。
于 2021-01-14T08:43:37.430 回答