即使在阅读文档后,我对git标记感到有点困惑.
说我正在改变我的develop
分支.
我应该在进行更改之前创建标记,还是应该在进行更改后添加标记?哪个工作流程更好?
最初我被要求使用git push --tags
,但在运行后git tag
我显示了5个标签的列表(release-1,...,release-5),当我尝试运行时,git tag -v release-5
我被提示有以下错误,同样适用于其他版本.有任何想法吗?
error: 575bbe56b0c021c51e2b819763c1ff15cc5d2186: cannot verify a non-tag object of type commit. error: could not verify the tag 'release-5'
如果我曾经git push
在Develop
分支中推送标签,然后合并到Master
分支,我还需要做另一轮git push --tags
标签与分支有何不同?哪个更好?
VonC.. 7
我应该在进行任何更改之前先创建一个标记,但我知道我可以在更改后标记它.哪个工作流程更好?
您没有必要,但如果您想回到确定的位置,它可以提供帮助.
你需要知道两种标签(如上所述git tag
):
轻量级标签(提交对象的SHA-1对象名称的引用)
带注释的标签(独立标签对象,包括创建日期,标签名称和电子邮件,标记消息和可选的GnuPG签名):
git tag -a myTag
或git tag -m "new myTag" myTag
两者都创建了带注释的标签.
git tag myTag
仅创建轻量级标记.
带注释的标签用于发布,而轻量级标签用于私有或临时对象标签.
无法验证提交类型的非标记对象.
您只能验证带注释的标签,因为它是一个独立的对象,可以支持可选的gpg签名(这是您尝试使用-v选项验证的签名).
轻量级标记只是提交的快捷方式.
git push --tags
在Develop
分公司:
这是一个会影响您的远程 上游仓库的操作.
它将推送所有标签,而不仅仅是在Develop分支中设置的标签.我只推荐
那些重要的东西git push --follow-tags
然后合并到
Master
分公司,
这是在您的本地仓库中完成的本地操作,与之前刚刚完成的操作无关.git push
我还需要做另一轮git push --tags
这两项行动完全不相关.
标签与分支有何不同?哪个更好?
与SVN相反,标签与分支非常不同并且补充它们:一个不比另一个好.
分支用于隔离开发工作(请参阅" 何时应该分支? ").
标签用于标识历史中的特定点是重要的(例如,用于标记版本).
可以轻松地重命名或删除分支.
(注释)在不影响git repo历史的情况下不能修改标签.
我应该在进行任何更改之前先创建一个标记,但我知道我可以在更改后标记它.哪个工作流程更好?
您没有必要,但如果您想回到确定的位置,它可以提供帮助.
你需要知道两种标签(如上所述git tag
):
轻量级标签(提交对象的SHA-1对象名称的引用)
带注释的标签(独立标签对象,包括创建日期,标签名称和电子邮件,标记消息和可选的GnuPG签名):
git tag -a myTag
或git tag -m "new myTag" myTag
两者都创建了带注释的标签.
git tag myTag
仅创建轻量级标记.
带注释的标签用于发布,而轻量级标签用于私有或临时对象标签.
无法验证提交类型的非标记对象.
您只能验证带注释的标签,因为它是一个独立的对象,可以支持可选的gpg签名(这是您尝试使用-v选项验证的签名).
轻量级标记只是提交的快捷方式.
git push --tags
在Develop
分公司:
这是一个会影响您的远程 上游仓库的操作.
它将推送所有标签,而不仅仅是在Develop分支中设置的标签.我只推荐
那些重要的东西git push --follow-tags
然后合并到
Master
分公司,
这是在您的本地仓库中完成的本地操作,与之前刚刚完成的操作无关.git push
我还需要做另一轮git push --tags
这两项行动完全不相关.
标签与分支有何不同?哪个更好?
与SVN相反,标签与分支非常不同并且补充它们:一个不比另一个好.
分支用于隔离开发工作(请参阅" 何时应该分支? ").
标签用于标识历史中的特定点是重要的(例如,用于标记版本).
可以轻松地重命名或删除分支.
(注释)在不影响git repo历史的情况下不能修改标签.