【问题标题】:"git checkout tag-name" vs "git reset --hard tag-name"“git checkout tag-name”与“git reset --hard tag-name”
【发布时间】:2012-05-25 08:44:35
【问题描述】:

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

我也知道:

git checkout tag-name:

  • 将您与分支机构分离。 (即移动HEAD指针,保持BRANCH指针)

git reset --hard tag-name:

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

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

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

【问题讨论】:

    标签: git


    【解决方案1】:

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

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

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

    或者

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2011-02-02
      • 2018-01-13
      • 2017-12-10
      • 2011-09-06
      • 2011-07-04
      相关资源
      最近更新 更多