gpt4 book ai didi

git - 如何阻止用户推送所有标签 (git push --tags)?

转载 作者:太空狗 更新时间:2023-10-29 13:22:57 26 4
gpt4 key购买 nike

在我们发现 git 标签可以用斜杠命名以将它们排列在文件夹结构中之前,我们创建了很多标签。现在真的很难摆脱命名错误的标签,因为虽然我在服务器上删除了命名错误的标签,但突然有人没有删除他们的标签在本地推送所有标签,然后旧标签和新标签又在服务器上了。

我们使用 SourceTree 作为 git 客户端(是的,我一直在附近并确保每个人都取消选中“推送所有标签”复选框,但新人到达并更换计算机)和 Visual Studio Team Services Git repo 。

我希望每个人都能够单独创建和推送标签,我只是想避免那些批量推送标签。

我读过这篇文章 git pre-push hook, don't run if is --tags但该解决方案似乎不适用于 Windows。

最佳答案

无论是git hooks还是其他脚本,都需要单独在本地机器上运行。因此,我会建议在开发人员在本地计算机上创建自己的标签之前将标签与远程同步

实际上它只需要为每台本地机器执行一次,所以开发人员只需要在他们的机器上运行以下命令(删除本地标签并从远程获取所有标签)即可开始工作:

git tag -l | xargs git tag -d
git fetch --tags

然后开发人员可以处理他们自己的本地仓库,甚至在 SourceTree 中选择 push all tags 选项git push 也不会影响您删除的旧标签。

另外,当 server side hooks will available in future for VSTS ,你也可以使用post-push hooks来检查删除的标签是否被再次推送到远程。如果是,停止推送您在 post-push hook 中指定的特定标签。

关于git - 如何阻止用户推送所有标签 (git push --tags)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45681091/

26 4 0