我正在尝试在本地克隆上创建一些标签,并将其推送到主节点,然后从远程删除一个标签,然后将其推送到我的本地克隆,要清楚,远程是github,但在谈论标签,而不是发布。
我在远程创建了一个标签v0.1-beta
。我在本地创建了一个标签v1.0-full-release
。
[我注意到,即使在我的本地端进行git fetch,git pull和git push之后,该侧仍会看到彼此的标签。
我查了一下,发现您可以使用git fetch --tags
从远程获取标签,所以现在我的本地客户端是最新的。但是我找不到将本地v1.0-full-release
标签推送到远程的方法。 Git push
没有这样做,我在文档中找不到任何内容。
SideNote:我已经在终端中完成了大部分测试,但是我同时注意到在桌面版Github,Kitkracken和Gmaster中,当我在本地创建标记时,以及在远程创建另一个标记时,都是从这些标记中获取或推送的客户不会同步标签以太。
[如果有人还可以解释为什么决定默认情况下标准git fetch
,git pull
和git push
不包含标签,那也很好。
虽然git fetch
确实默认包含--tags
,但默认情况下不包含--tags
。
[(insert record-scratch sound effect here)等待,什么?
[好的,诀窍是: 从不git fetch
将带来标签当它带来附有标签的提交时。整个主题有一些变化(或者至少是特定角落的错误)情况)在不同版本的Git中,但是总的来说,如果您还没有标记的提交,并且您在没有git fetch
或--tags
的情况下运行--no-tags
,则会得到[[both提交和标签。但是,如果您已经具有提交,并且在不使用git fetch
的情况下运行--tags
,则不获取标记。相反,git push
不带--tags
git push origin tag-name
无论如何显式地推送一个特定标签。