如何在 GitHub 中创建标签而不创建发布?

Posted

技术标签:

【中文标题】如何在 GitHub 中创建标签而不创建发布?【英文标题】:How do I create a tag in GitHub without creating a release? 【发布时间】:2021-02-10 03:04:12 【问题描述】:

我即将对我的项目进行重大技术更改,从 ANT 迁移到 Gradle。这个项目从未发布过——它仍在开发中。我想标记最后一个旧技术版本,以便可以找到它以供参考或还原。但我不想暗示有任何形式的释放。

[一个补充的想法:我希望一些感兴趣的人看到一个版本并认为它可能是一个可用的“版本”。也就是说,我认为发布是针对用户的,而标签是针对开发人员的。 ]

我希望得到一个不需要我进入 Git 命令行的答案,但如果有必要,请假设我已经忘记了我曾经尝试学习的一点点。

@RandomDSdevel 在对create-a-tag-in-a-github-repository 问题的回答发表评论时说:

[S]难道你不能创建 GitHub 不会自动获取的标签作为发布...?

然后

我不久前向 GitHub 提交了一个支持请求,但当时他们有一些支持积压,所以我的请求被关闭了。

【问题讨论】:

在分支机构工作似乎更合适,这就是他们的目的。 @Schwern,我希望我只是在一个分支中完成它。现在我想我会把它变成一个分支;到目前为止,我将把我所有的工作都转储到分支中,这将使我回到我的常规流程中,以仔细检查所有内容然后合并。但这仍然留下了标记合并前主版本的问题,以防我以后想参考它。 【参考方案1】:

最简单的解决方案是创建一个版本(在 GitHub UI 中),然后删除该版本。 这将删除版本,但标签将保持不变,这将是您的问题的解决方案。

希望这对您有用。 ?

【讨论】:

并且标签名称仍然必须以愚蠢的“v0.0”开头,试图作为一个版本有意义。 @cowang 你可以删除标签,创建另一个你想要的名字,然后删除发布但不是标签。 如何删除一个版本的详细信息是here。【参考方案2】:

我希望我只是在一个分支中完成它。

现在还不算太晚,而且不会丢失任何历史记录。

现在从 master 上创建一个分支,这将使您的 Ant -> Gradle 工作。

git branch ant_to_gradle master

将 master 移回上一次稳定提交。

git checkout master
git reset --hard <last stable commit>

Gently force push 重置主分支。

git push --force-with-lease

继续在ant_to_gradle上工作,别管master。

是的,这涉及到命令行。有一些 Git 应用程序可以为您执行此操作,我喜欢 GitUp,但我的建议是熟悉命令行。应用很有用,但有局限性。

但这仍然留下了标记合并前主版本的问题,以防我以后想参考它。

您可以在本地标记它而不是推送标记。

您可以标记它并相信如果有人看到一个名为 pre-gradle 的版本,他们就会知道他们在做什么。你也可以edit a release to mark it a pre-release。

但我的建议是不要在你的 repo 中添加“以防万一我需要它”的标签,而是进行可搜索的提交并获得舒适的搜索历史;因为你不会总是想制作一个标签。如果您在 Pull Request 中合并您的工作,Github 将生成一致的合并提交消息,例如 Merge pull request #1859 from ant_to_gradle。然后你可以搜索它以找到合并提交并向后看。

【讨论】:

关于“我的建议是熟悉命令行”。我每隔一两年就会遇到一个 GitHub 问题。我的经验是我忘记了命令行。我曾经非常擅长 Tandem 系统命令行和 MS Dos,在 Unix 上也不错,但现在我使用太多不同的程序来跟踪它们的命令行细节。我唯一的希望就是在遇到麻烦时来 ***。 感谢您详细说明如果我已经向 Master 提交了如何退出。这对某些人会很有帮助。幸运的是,我仍然在私有存储库中单独保存了新版本。 感谢您的链接。我在deleting a release 看到了我遗漏的细节。 我终于在 GitHub 中找到了提交列表。单击存储库主页上文件列表右上角的链接。拉取请求列表可能更有用;它们可从页面顶部的选项卡中获得。【参考方案3】:

总结我目前使用 GitHub 创建不发布标签的经验:

我可以创建一个版本,但它要求我的标签名称在开始时有一个版本,比如

v0.0-MyTagName

如果我delete the release,标签仍会显示在标签列表(以及发布列表,但至少它不会像发布时那样显示在标题类型中)。

此时我可以编辑标签名称以摆脱“v0.0-”,留下我真正想要的名称。看起来它会将您切换到编辑版本,但除非您添加标题,否则它会保留为标签。现在它看起来不像一个版本,即使标签名称出现在版本列表中。

使用 git 代替 GitHub,或许可以做更多事情。

我在 GitHub Desktop 中找不到标签或版本。如果您只想查看分支的代码,则必须在线进行。如果要修改标签处的代码,当然需要创建一个分支。分支在 GitHub Desktop 中可见。

【讨论】:

以上是关于如何在 GitHub 中创建标签而不创建发布?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kotlin 中创建静态函数而不创建对象

如何在基于 sysdig 指标标签的 grafana 仪表板中创建下拉菜单

如何在 Netbeans 中创建 Java 项目,而不使用 Maven 作为默认值?

如何在 Linux 中创建原始套接字而不缓冲接收数据包?是不是可以?

如何通过 github API 在 github 中创建存储库?

如何使用 nodejs 在 mailchimp 订阅者列表中创建标签?