如何在 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 中创建标签而不创建发布?的主要内容,如果未能解决你的问题,请参考以下文章
如何在基于 sysdig 指标标签的 grafana 仪表板中创建下拉菜单
如何在 Netbeans 中创建 Java 项目,而不使用 Maven 作为默认值?
如何在 Linux 中创建原始套接字而不缓冲接收数据包?是不是可以?