在github上交换“最新版本”
我在github上有一个仓库。
这是图表:
这是我的动作序列:
进行5次提交并推送它们
添加标签v0.2.0 ( git tag -a v0.2.0 -m "release 0.2.0"
)
推动标签( git push --tags origin master
)
通过在github网站上草拟新的发布按钮来发布发布。 我选择了v0.2.0标签并获得了https://github.com/n1k1ch/PrototypeGit/releases/tag/v0.2.0
添加一个标签到以前的提交( git tag -a v0.1.0 b217332279 -m "release 0.1.0"
)
推动标签( git push --tags origin master
)
通过使用v0.2.0标签草稿发布新版本,并获得https://github.com/n1k1ch/PrototypeGit/releases/tag/v0.1.0
所以,v0.1.0标签成为最新版本
题:
我能否将v0.1.0版本与v0.2.0版本交换,以使v0.2.0成为最新版本 ?
PS谷歌搜索“github交换释放”没有帮助
编辑:
感谢@Chris,我做到了。 一个小笔记 - 在Windows上我使用:
SET GIT_COMMITTER_DATE="2014-04-02 23:00"
git tag -a v0.1.0 b217332279 -m "release 0.1.0"
git push --tags origin master
只要有人感兴趣,在此之后我看到以下内容:
我打开v0.1.0并按发布发布结果是:
我还收到了来自support@github.com的答案:
这是预期的行为。 我们将在您的v0.1.0发行日期之前,而不是最后一次提交的日期。 以下是一篇关于更改注释标签日期的好博客文章:http://sartak.org/2011/01/replace-a-lightweight-git-tag-with-an-annotated-tag.html
我不知道有什么方法直接在GitHub中执行此操作。 “最新版本”是根据您的标签上的时间戳确定的,而不是其名称的语义。
在过去,我通过删除有问题的旧标签,在我自己的个人项目上解决了这个问题:
git tag -d v0.1.0
git push --delete origin v0.1.0
并用假日期重新创建它:
GIT_COMMITTER_DATE="2013-12-31 00:00" git tag -a v0.1.0.1 b217332279 -m "release 0.1.0.1"
git push --tags origin master
这在git-tag
的manpage中有记录:
在追溯标签
如果您从其他VCS导入了一些更改,并且希望为主要版本添加标签,则可以指定嵌入标签对象内的日期; 例如,标签对象中的这些数据会影响gitweb界面中标签的排序。
要设置未来标记对象中使用的日期,请设置环境变量GIT_COMMITTER_DATE(请参阅后面对可能值的讨论;最常见的形式是“YYYY-MM-DD HH:MM”)。
例如:
$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1
请注意,相同的手册页强烈建议不要重复使用相同的标记名称:
关于重新标记
当你标记错误提交并且你想要重新标记时,你应该怎么做?
如果你从未推出任何东西,只需重新标记即可。 用“-f”替换旧的。 你完成了。
但是如果你推出了一些东西(或者其他人可以直接读取你的存储库),那么其他人就会看到旧的标签。 在这种情况下,您可以执行以下两件事之一:
理智的事情。 只要承认你搞砸了,并使用不同的名字。 其他人已经看到一个标签名称,如果你保持相同的名称,你可能处于两个人都拥有“版本X”的情况,但他们实际上有不同的“X”。 所以把它叫做“X.1”,并且用它来完成。
疯狂的事情。 即使其他人已经看过旧版本,你也确实想要叫新版本“X”。 所以git tag -f again
使用git tag -f again
,就好像你还没有发布旧的。
但是,Git不会( 也不应该)更改用户背后的标签。 所以如果有人已经拿到了旧标签,那么在树上做一个git pull
不应该让它们覆盖旧标签。
如果有人从您那里获得发布标签,您不能只更新自己的标签来更改标签。 这是一个很大的安全问题,因为人们必须能够信任他们的标签名称。 如果你真的想要做这个疯狂的事情,你只需要付诸行动,并告诉人们你搞砸了。 你可以通过发表一个非常公开的声明来说明:
好吧,我搞砸了,我推出了一个标记为X的早期版本。然后我修正了一些问题,并重新将固定树重新标记为X.
如果你得到错误的标签,并且想要新标签,请删除旧标签并通过执行以下操作来获取新标签:
git tag -d X
git fetch origin tag X
获取我的更新标签。
你可以测试你的标签
git rev-parse X
这应该返回0123456789abcdef ..如果你有新版本。
抱歉给你带来不便。
这看起来有点复杂吗? 应该是。 没有办法自动“修复”它是不正确的。 人们需要知道他们的标签可能已被更改。
如果您的项目相对孤立,并且您可以可靠地联系可能正在使用代码的所有人,我只会重复使用相同的标记。
有关删除远程标签的更多详细信息,请参阅此问题。
链接地址: http://www.djcxy.com/p/49287.html