我们使用 git 来管理我们的项目,每个项目都有一个分支:
开发者
分期
生产
我想使用 git 标签来管理软件的版本。据我所知,我是否在分支上并添加了一些提交,然后我必须运行:
git标签1.0
将 1.0 替换为我们最新的版本号,然后我可以使用以下命令推送标签:
git推送起源1.0
我可以用以下命令更新分支:
git push --标签
但现在如何重用标签呢?如果我向本地存储库提交更多代码并希望它轻松成为 1.0 版本?或者您只是添加一个新标签(例如 1.1)?
另外,如果我的同事在他的本地存储库上使用相同的标签名称,并且我们都推送该相同标签的代码,会发生什么情况?
最后,如果我们不小心推送代码而没有运行 git tag 来标记提交,会发生什么。
我不太明白标签是如何工作的,我认为它们会像你标记博客文章或其他东西一样工作 - 你可以使用相同的标签标记许多不同的提交并重用标签等。我猜有点像分支。
但现在如何重用标签呢?如果我向本地存储库提交更多代码并希望它轻松成为 1.0 版本?或者您只是添加一个新标签(例如 1.1)?
您可以使用以下命令删除标签git tag -d 1.0
,然后在服务器上删除它git push origin :refs/tags/1.0
.
但最佳实践是仅标记版本,然后在创建标记的位置为该版本创建维护分支。在该分支上,您推送修复程序,并在发布更新版本时使用 1.1、1.2 等标记。在将代码提供给客户后移动标签是不好的做法。
另外,如果我的同事在他的本地存储库上使用相同的标签名称,并且我们都推送该相同标签的代码,会发生什么情况?
我很确定你们中第二个推送标签的人会收到错误。自己尝试一下,看看会发生什么:
git checkout -b testbranch
git tag test1
git push origin tag test1
git tag -d test1
touch testfile
git add testfile
git commit -m "Added testfile"
git push origin testbranch
git tag test1
git push origin tag test1
最后,如果我们不小心推送代码而没有运行 git tag 来标记提交,会发生什么。
您应该在推送提交后推送标签。你不能同时做这两件事(git push --tags
不推送提交,仅推送标签)。如果您先推送标签,则远程将具有悬空引用,直到您推送提交为止。所以你应该做
git push origin master
git push origin --tags
或类似的,具体取决于您的情况。
我不太明白标签是如何工作的,我认为它们会像你标记博客文章或其他东西一样工作 - 你可以使用相同的标签标记许多不同的提交并重用标签等。我猜有点像分支。
标签就像提交上的标签,因此您可以将某些提交标记为“特殊”。最常见的是,这用于标记版本,因此如果客户报告错误,您可以随时返回并准确查看该版本中的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)