gpt4 book ai didi

git - 在不在本地添加 repo 的情况下在远程存储库中添加标签

转载 作者:太空狗 更新时间:2023-10-29 13:07:20 25 4
gpt4 key购买 nike

无论如何都必须在远程存储库中添加标签,而无需在本地克隆/添加它。我只需要这样做来标记 QA 构建

最佳答案

您可以创建一个完全没有本地标签的远程标签

git push origin HEAD:refs/tags/foo

您可以使用

删除相同的标签
git push origin :refs/tags/foo

这是一个解释。

执行命令git push。不太严格的话,一般语法可以解释为

git push where what:onto

其中 是您要推送到的远程存储库的名称。

what 对本地存储库提交的引用(使用 git 提供的几种类型之一)。它可以是 SHA1、分支名称、标签名称或其他。

onto 您希望 Remote 使用的名称来引用您正在推送的内容。

例如

git push origin master:master

正在将 master 指向的提交(以及所有其他先前的提交,如果远程没有它们)推送到 origin,要求远程存储库调用它master,即在其 master 分支中保存与您本地 master 分支中记录的完全相同的 SHA1(这不完全正确,但接受这个例子理解原理)。

现在,事实上,分支和标签只是存储提交的 SHA1 的普通文件。您可以将它们视为排序指针变量,并引用存储库中的某个提交。分支和标签存储在 .git/refs/heads.git/refs/tags

尝试

cat .git/refs/heads/master

所以,前面的可以写成

git push origin refs/heads/master:refs/heads/master

如果你想在远程存储库中创建一个标签 foo 指向你的 master 分支引用的同一个提交,你可以运行

git push origin master:refs/tags/foo

如果你想在远程存储库上创建一个标签,引用与你当前所在的完全相同的提交,请使用特殊分支 HEAD,它是指向你当前位置的指针

例如,尝试

git checkout master
cat .git/refs/heads/master
cat .git/HEAD

它应该给出两次相同的值,确认 masterHEAD 引用相同的提交,也就是说,你 大师

因此,为了创建一个引用本地当前提交使用的远程标记

git push origin HEAD:/refs/tags/a_tag_name

这有点像您要求远程 origin 在其文件 refs/tags/a_tag_name 中写入本地 HEAD 中包含的 SHA1 值。这会在远程存储库中创建标签。

如果您推送一个null,您将删除标签

git push origin :/refs/tags/a_tag_name

就这样

关于git - 在不在本地添加 repo 的情况下在远程存储库中添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com