git fetch --all --no-tags
并没有按照它所说的去做,并且每次运行它时都会重新获取标签。我如何实际上从所有遥控器获取而不获取标签?
重现:
- 叉这个仓库
- 克隆你的叉子
- 添加上游遥控器
[email protected]:cachix/install-nix-action.git
git fetch --all --no-tags
应该发生什么:这笔交易不应该伤害任何标签。
实际发生的情况:遥控器破坏了彼此的标签:
❯ git fetch --all --no-tags
Fetching origin
From github.com:example-user/install-nix-action
- [deleted] (none) -> [omitted]
[…]
Fetching upstream
From github.com:cachix/install-nix-action
* [new tag] [omitted] -> [omitted]
[…]
当仅获取默认远程时,它甚至会表现出这种行为:
❯ git fetch --no-tags
From github.com:example-user/install-nix-action
- [deleted] (none) -> [omitted]
答案1
根据我阅读的git-fetch 文档,--no-tags
仅告诉 git 不要从您的遥控器获取任何新标签。清理您要从中提取的遥控器上不再存在的本地标签是由不同的设置驱动的,即fetch.pruneTags
.如果输出git config --list
显示fetch.pruneTags=true
,则意味着您可能在某个时候手动启用了此功能。您应该删除此设置以返回到从远程获取时不修剪标签的默认行为。