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

8
我即将对我的项目进行重大技术更改,从ANT转移到Gradle。该项目尚未发布--仍在开发中。我想为旧技术版本打上标记,以便可以找到用于参考或还原。但是,我不想暗示有任何发布版本。
[另一个想法:我预计一些感兴趣的人会看到发布并认为它可能是可用的“发布”。也就是说,发布面向用户,而标记面向开发人员。]
我希望得到的答案不需要我进入Git命令行,但如果有必要,请假定我已经忘记了我曾经尝试学习的少量知识。
在回答此问题create-a-tag-in-a-github-repository的评论中,@RandomDSdevel说:
[S]houldn't you be able to create tags that don't automatically get picked up by GitHub as releases…?
然后
我曾经向GitHub提交过支持请求,但他们当时有一些支持积压的问题,所以我的请求被关闭了。

在分支中完成你的工作似乎更为合适,这也是它们存在的目的。 - Schwern
@Schwern,我希望我当初就在一个分支上完成它。现在想想,我会把它变成一个分支;我将把到目前为止的所有工作都转移到该分支中,这将使我回到正常的流程中,以便仔细检查一切然后合并。但这仍然存在一个问题,即标记预合并主版本,以防以后需要参考它。 - cowang
3个回答

6
最简单的解决方案是创建一个发布(在GitHub UI上),然后删除该发布。
这将删除发布,但标签仍将保留,这将是您问题的解决方案。

希望对你有用。


而且标签名称仍然必须以愚蠢的“v0.0”开头,试图作为一个发布版本有意义。 - cowang
@cowang 您可以删除标签,创建另一个您想要的名称的标签,然后删除发布但不要删除标签。 - David Leal
如何删除发布的详细信息请查看这里 - cowang

4

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

我可以创建一个发布,但是需要我的标签名称以版本号开头,例如

v0.0-MyTagName

如果我删除发布,标签仍然会显示在标签列表下(以及发布列表中,但至少它不像发布一样出现在标题类型中)。
此时,我可以编辑标签名称以去掉“v0.0-”,留下我真正想要的名称。看起来它会切换到编辑发布,但除非您添加标题,否则它仍然是标签。现在它看起来不像一个发布,尽管标签名称显示在发布列表中。
使用 git 而不是 GitHub,您可能可以做更多事情。
我在 GitHub Desktop 中找不到标签或发布。如果您只想查看分支的代码,您必须在线执行此操作。如果您想修改标记处的代码,则需要创建分支。分支在 GitHub Desktop 中可见。

1

我希望当初把它放在一个分支里做。

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

现在从主分支创建一个分支,这个分支将包含你的Ant -> Gradle工作。

git branch ant_to_gradle master

将主分支移回到最后一个稳定的提交。
git checkout master
git reset --hard <last stable commit>

轻推重置主分支。

git push --force-with-lease

继续处理ant_to_gradle,不要动master分支。

是的,这需要进入命令行。有一些Git应用程序可以帮你完成这个过程,我喜欢GitUp,但我的建议是要熟悉命令行。应用程序很有用,但有限制。

但这仍然存在一个问题:如何标记合并前的主版本以备后用。

你可以在本地打上标签,而不进行推送。

你也可以打上标签,并相信如果有人看到一个名为pre-gradle的发布,他们知道自己在做什么。你还可以编辑发布版本以将其标记为预发布版本

但是我的建议是不要在存储库中随意添加“以防万一需要”的标签,而是进行可搜索的提交并熟悉搜索历史记录;因为你不会总是想到添加标签。如果您在 Pull Request 中合并工作,Github 将生成一个一致的合并提交消息,例如Merge pull request #1859 from ant_to_gradle。然后您可以搜索该消息以查找合并提交并向后查看。

关于“我的建议是要熟悉命令行”的问题。我每年只会遇到一两次GitHub问题。我的经验是我会忘记命令行。我曾经非常擅长Tandem系统命令行和MS Dos,对Unix也还算熟练。但现在我使用太多不同的程序,无法跟踪它们的命令行细节。当我遇到麻烦时,我的唯一希望就是来StackOverflow寻求帮助。 - cowang
感谢您提供有关如何回退到已提交到主分支的详细信息。这对某些人来说将非常有帮助。幸运的是,我仍然将新版本保存在私有存储库中。 - cowang
谢谢提供链接。我在删除发布中看到了我所缺少的细节。 - cowang
我终于在GitHub上找到了提交列表。单击存储库主页上文件列表右上方的链接。拉取请求列表可能更有用;它们可以从页面顶部的选项卡中获得。 - cowang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接