我通过删除本地标签然后进行git fetch来修复它以用于我的repo.这带来了更新的标签.
是否有"正确"的方式来更新遥控器上可能已更改的标签?这是一个简单的标签,没有签名或任何东西,用"git tag"创建
Von*_*onC 78
确保获取所有标记(直通git fetch --tags),以获取所有标记,而不仅仅是引用从分支头可以访问的提交.
那些(获取的)标签是带注释的(并且通常不是轻量级的),如果你在本地仓库上添加已删除的标签,它们只会在获取后弹回.
但是,如果您删除了一个轻量级的,则需要在本地重新创建它:通常不会向远程仓库推送或从远程仓库中提取轻量级标记.
请注意,启动git 1.9/2.0(2014年第一季度),git fetch --tags将获取所有内容(如git fetch),以及标记.请参阅"是" git fetch --tags"包含" git fetch"? ".
同样,获取"一切"意味着注释和轻量级(如果先前推送了那些轻量级标签).
如下所述,在biocyberman的回答中,如果你想从所有遥控器(而不仅仅是名为' origin' 的默认遥控器)中获取标签,你需要添加该--all选项.
git fetch --tags --all
Run Code Online (Sandbox Code Playgroud)
yuc*_*cer 15
我认为正确的方法是:
git fetch origin --tags --force
Run Code Online (Sandbox Code Playgroud)
您应该避免使用具有相同标签名称的分支,因为签出会优先考虑该分支,并且您可能会因为标签未更新而陷入困境。在这种情况下,也许git应该发出警告,例如:
您更新的标签现在与同名分支不同。对“标记名”的引用变得模棱两可。
您所说的是正确的方法,这是git tag手册推荐的内容(实际上,它说,除非世界即将结束,否则不要更改远程仓库上的标签):
git tag -d X
git fetch origin tag X
Run Code Online (Sandbox Code Playgroud)