即使在阅读了文档之后,我也对git标记感到有点困惑。
假设我正在对我的develop分支进行更改。
git push --tags,但是在运行git tag之后,我被显示了一个包含5个标记的列表(release-1,.,release-5 ),当我尝试运行git tag -v release-5时,它会提示我出现以下错误,其他版本也是如此。有什么想法吗?
错误: 575bbe56b0c021c51e2b819763c1ff15cc5d2186:无法验证类型为commit的非标记对象。错误:无法验证标签'release-5‘git push在Develop分支中推送标记,然后合并到Master分支,那么还需要执行另一轮git push --tags吗?发布于 2014-07-03 07:12:29
在做任何更改之前,我是否应该先创建一个标记,尽管我知道可以在更改之后标记它。哪个工作流更好?
你不需要这样做,但如果你想回到一个确定的点,它会有帮助的。
但是,您需要知道两种标记(如git tag中提到的):
git tag -a myTag或git tag -m "new myTag" myTag都创建了带注释的标记。
git tag myTag只创建一个轻量级标记。注释标记用于发布,而轻量级标记用于私有或临时对象标签。 无法验证类型为commit的非标记对象。
您只能验证带注释的标记,因为它是一个独立的对象,可以支持可选的gpg签名(这是您试图用-v选项验证的签名)。
轻量级标记只是提交的快捷方式。
git push --tags在Develop分支中:
这是一个会影响远程上游回购的操作。
它将推送所有标签,而不仅仅是开发分支中设置的标记。
要只推动那些重要的东西,git push --follow-tags
然后合并到
Master分支,
这是在您的本地回购中完成的本地操作,并且与前面所做的git push无关。
我还需要再做一轮git推送标签吗?
这两个行动都是完全无关的。
标签和分支有什么不同?哪一个更好?
与SVN不同,标记与分支有很大的不同,并对它们进行补充:一个并不比另一个好。
可以很容易地重命名或删除分支。
(带注释的)标记不能在不影响git历史的情况下进行修改。
发布于 2014-07-03 17:48:49
首先,VonC给出了很好的解释。现在转到你的问题,关于标签的工作流程,
我希望它能帮助你:)
https://stackoverflow.com/questions/24545459
复制相似问题