“git checkout tag-name”vs“git reset --hard tag-name”

问题描述:

我知道有像this这样的问题,但这不是我所要求的。“git checkout tag-name”vs“git reset --hard tag-name”

我也知道:

git checkout tag-name

  • 拆离你从分支。 (即移动HEAD指针,不断BRANCH指针)

git reset --hard tag-name

  • 不从分支分离你,但使得以前提交成为 “悬空”。 (即移动既HEADBRANCH指针)

我不知道哪一个更有意义用于更新标签的,即应该在生产先复位或签出。我知道一个垃圾收集器可能会运行,删除悬而未决的提交,但是如果在更新到一个标记之前总是“拉”生产,那么我看到没有什么不好的地方。

考虑到在此更新呼叫之前总是完成pull,是否应该对resetcheckout的标签进行生产更新?

我不知道哪一个更有意义的更新标签

您的生产安装应该检查出的标签。

想想这样:你的生产安装是只读的。 git reset --hard tag-name将修改当前签出的分支。

或者

这是常见的做法,除了创造一个标签,你有一个分支,它仅仅是最新版本。在这种情况下,你可以合并为主并从那里创建标签;并且在你的生产安装中,你只需使用git pull(在主服务器上)进行更新。