如何标记并转到hg中的标签

mic*_*ael 18 mercurial

该网站hg tag 1.0是将我的Mercurial存储库添加到标记名称.

如何将存储库切换到该标记名称?

$ hg tag myTag1.0
$ <edit more files>
$ hg commit -m "a message"
$ hg how to go back to that tag?
Run Code Online (Sandbox Code Playgroud)

如果我hg commit在这里做一个新的,会发生什么?它会去分支myTag1.0吗?或者它会保留在默认分支上?

Amb*_*ber 32

标签不是分支.标签是特定提交的标记 - 基本上是一种命名提交的方式.就这样.您不要"将存储库切换到标记",而不是"将存储库切换到提交" - 您可以签出标记,但所有操作都将您的工作副本回滚到标记的相应变更集.

当您提交不直接构建当前头版本的代码时,Mercurial中会自动创建分支.

有关详细信息,请参见此处:

https://www.mercurial-scm.org/wiki/Tag

https://www.mercurial-scm.org/wiki/Branch


Rob*_*ert 5

只需更新标签名称即可。

hg tag 1.0
... make changes ...
hg ci
hg up 1.0
Run Code Online (Sandbox Code Playgroud)

  • 这样做的问题是标签是作为对 .hgtags 文件的更改提交的。像这样: 变更集:350:e6e05f8b7536 标签:提示描述:为变更集 5d0862b8c30b 添加标签 1.0 变更集 349:5d0862b8c30b 标签:1.0 描述:修复了错误 X 和 Y,1.0 待测试。但现在当你 hg up 1.0 时,标签不存在,因此这里的任何提交都会创建一个分支(新头),其中 1.0 未标记。与其说是一个问题,不如说是一个你必须注意的事情。 (5认同)