"git checkout tag-name"vs"git reset --hard tag-name"

Tow*_*wer 17 git

我知道有这样的问题这样,但是这不是我在问什么.

我也知道:

git checkout tag-name:

  • 将你从分支机构中分离出来.(即移动HEAD指针,保持BRANCH指针)

git reset --hard tag-name:

  • 不会将你从分支机构中分离出来,但会使之前的承诺变得"悬空".(即移动指针HEADBRANCH指针)

我想知道更新到标签更有意义,即应该重置或检查生产.我知道垃圾收集器可以运行,删除悬空提交,但是如果在更新到标签的过程之前总是"拉"生产,那么我认为没有什么不好的.

是否应该使用reset或更新标签checkout,考虑到pull在此更新调用之前始终执行a ?

AD7*_*six 15

我想知道哪一个对更新标签更有意义

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

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

另外

通常的做法是,除了创建标记之外,您还有一个分支,它只是最新版本.在这种情况下,你可以合并为master并从那里创建一个标签; 在您的生产安装上,您只需使用git pull(在master上)进行更新.