首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git标记问题

Git标记问题
EN

Stack Overflow用户
提问于 2014-07-03 05:18:41
回答 2查看 2.5K关注 0票数 5

即使在阅读了文档之后,我也对git标记感到有点困惑。

假设我正在对我的develop分支进行更改。

  1. 是在进行更改之前创建一个标记,还是在进行更改后添加标记?哪个工作流更好?
  2. 最初,我被要求只使用git push --tags,但是在运行git tag之后,我被显示了一个包含5个标记的列表(release-1,.,release-5 ),当我尝试运行git tag -v release-5时,它会提示我出现以下错误,其他版本也是如此。有什么想法吗? 错误: 575bbe56b0c021c51e2b819763c1ff15cc5d2186:无法验证类型为commit的非标记对象。错误:无法验证标签'release-5‘
  3. 如果我使用git pushDevelop分支中推送标记,然后合并到Master分支,那么还需要执行另一轮git push --tags吗?
  4. 标记与分支有何不同?哪一个更好?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 07:12:29

在做任何更改之前,我是否应该先创建一个标记,尽管我知道可以在更改之后标记它。哪个工作流更好?

你不需要这样做,但如果你想回到一个确定的点,它会有帮助的。

但是,您需要知道两种标记(如git tag中提到的):

  • 轻量级标签 (提交对象的SHA-1对象名称的引用)
  • 带注释的标签 (独立的标记对象,包括创建日期、标签名和电子邮件、标记消息和可选的GnuPG签名):git tag -a myTaggit tag -m "new myTag" myTag都创建了带注释的标记。 git tag myTag只创建一个轻量级标记。

注释标记用于发布,而轻量级标记用于私有或临时对象标签。 无法验证类型为commit的非标记对象。

您只能验证带注释的标记,因为它是一个独立的对象,可以支持可选的gpg签名(这是您试图用-v选项验证的签名)。

轻量级标记只是提交的快捷方式。

git push --tagsDevelop分支中:

这是一个会影响远程上游回购的操作。

它将推送所有标签,而不仅仅是开发分支中设置的标记。

要只推动那些重要的东西,git push --follow-tags

然后合并到Master分支,

这是在您的本地回购中完成的本地操作,并且与前面所做的git push无关。

我还需要再做一轮git推送标签吗?

这两个行动都是完全无关的。

标签和分支有什么不同?哪一个更好?

与SVN不同,标记与分支有很大的不同,并对它们进行补充:一个并不比另一个好。

  • 分支用于隔离开发工作(请参阅"你什么时候分店?")。
  • 标记用于识别历史上重要的特定点(例如,标记版本)。

可以很容易地重命名或删除分支。

(带注释的)标记不能在不影响git历史的情况下进行修改。

票数 8
EN

Stack Overflow用户

发布于 2014-07-03 17:48:49

首先,VonC给出了很好的解释。现在转到你的问题,关于标签的工作流程,

  1. 你必须用轻量级或带注释的标签标记你的初始版本的git (选择是你的),通常我更喜欢带注释的标签。{P.S:标记的初始版本总是更好。这不是必须的。}
  2. 然后做出你的改变,提交并推动它们。同样,您可以简单地使用git命令来创建一个标记,并且必须使用"git推送原产地-标记“来推送它。
  3. 一旦完成,您的标记将通过您的更改完成。现在,如果您可以使用"git diff tag1 tag2“检查diff。

我希望它能帮助你:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24545459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档