在我阅读有关重命名git标签的过程中,很多人都指出这样做:
当您标记错误的提交并且您想要重新标记时,您应该怎么做?
如果你从未推过任何东西,只需重新标记即可.使用"-f"替换旧的.而且你已经完成了.
但是如果你把事情搞砸了(或者其他人可以直接读取你的存储库),那么其他人就已经看到了旧的标签了.在这种情况下,您可以执行以下两项操作之一:
理智的事情.只是承认你搞砸了,并使用不同的名字.其他人已经看过一个标签名称,如果你保持相同的名称,你可能会遇到两个人都有"版本X"的情况,但他们实际上有不同的"X".所以只需称它为"X.1"并完成它.
疯狂的事情.你真的想把新版本称为"X",即使其他人已经看过旧版本.所以再次使用git tag -f,好像你还没有发布旧版本一样.
但是,Git不会(也不应该)更改用户背后的标签.因此,如果某人已经获得了旧标签,那么在树上执行git pull不应该只是让它们覆盖旧的标签.
如果有人从你那里得到了一个发布标签,你就不能通过更新自己的标签来改变标签.这是一个很大的安全问题,因为人们必须能够信任他们的标签名称.如果你真的想做疯狂的事情,你需要了解它,告诉别人你搞砸了.
好吧,在重新招聘时,我问了一个早先的问题,如果你感兴趣的话--Git重新找到理智和疯狂的建议 -但是,第1部分并不是必需的.我刚刚将问题链接起来,因为上下文是相同的.
所以,我的问题是
我有2个本地回购的一个遥控器 - 回购1和回购2.
第1步:按名称在repo1中创建带注释的标签X.
第2步:推送到远程.
第3步:Repo 2拉动标签.
步骤4:Repo 1删除标签X并创建另一个标签,X但这次使用不同的消息.
第5步:推送到远程.
步骤6:在repo2中git pull --tags,更新标签X.
这怎么可能 ?如上所述,git不应该这样做 - 那是更新标签?
\n\n\n所以如果有人已经拿到了旧标签
\n
这就是你的第 3 步。
\n\n\n\n\n不应该\xe2\x80\x99t 只是让它们覆盖旧的。
\n
好吧,它没有,因为它仍然保留着旧标签,不是吗?
\n\n\n\n\n如果有人从您那里获得了发布标签,您不能仅通过更新您自己的标签来更改他们的标签。\n
\n
所以旧的已经生效了——一切都很好。推送后无法更改标签。
\n| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |