18

我知道有这样的问题但这不是我要问的。

我也知道:

git checkout tag-name

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

git reset --hard tag-name

  • 不会将您从分支中分离出来,但会使之前的提交变得“悬空”。(即同时移动HEADBRANCH指针)

我想知道哪个更适合更新到标签,即是否应该重置或签出生产。我知道垃圾收集器可能会运行,删除悬空提交,但话又说回来,如果在更新到标签的过程之前总是“拉动”生产,我看不出有什么不好的。

考虑到 a总是在此更新调用之前完成,是否应该使用resetor对标签进行生产更新?checkoutpull

4

1 回答 1

16

我想知道哪一个更适合更新到标签

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

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

或者

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

于 2012-05-25T10:33:57.383 回答