即使阅读完文档后,我对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
分支,我是否还需要进行另一轮{ {1}}
标签与分支有何不同?哪个更好?
答案 0 :(得分:6)
我应该在做任何更改之前先创建一个标记,但我知道我可以在更改后标记它。哪种工作流程更好?
您不必这样做,但如果您想回到确定的位置,它会有所帮助。
你需要知道两种标签(如git tag
中所述):
git tag -a myTag
或git tag -m "new myTag" myTag
都创建了带注释的标签
git tag myTag
仅创建一个轻量级标记。带注释的标签用于发布,而轻量级标签用于私有或临时对象标签。
无法验证commit类型的非标记对象。
您只能验证带注释的标签,因为它是一个独立的对象,可以支持可选的gpg签名(这是您尝试使用-v选项验证的签名)。
轻量级标记只是提交的快捷方式。
git push --tags
分支中的
Develop
:
这是一项会影响远程 upstream repo的操作
它将推送所有标签,而不仅仅是在Develop分支中设置的标签
仅推送重要的I recommend git push --follow-tags
然后合并到
Master
分支
这是在本地回购中完成的本地操作,与之前刚刚完成的git push
无关。
我还需要做另一轮git push --tags
这两项行动完全无关。
标签与分支有何不同?哪个更好?
与SVN相反,标签与分支有很大的不同,并对它们进行补充:一个不比另一个好。
可以轻松重命名或删除分支 (注释)在不影响git repo的历史记录的情况下不能修改标签。
答案 1 :(得分:0)
首先,VonC的解释很好。 现在转到您的问题,关于标记的工作流程,
我希望它会对你有所帮助:)。