2012-05-25 6 views
15

Я знаю, что есть такие вопросы, как this, но это не то, что я прошу."git checkout tag-name" vs "git reset --hard tag-name"

Я также знаю, что:

git checkout tag-name:

  • Отсоединяет вас от филиала. (То есть движется HEAD указатель, сохраняет BRANCH указатель)

git reset --hard tag-name:

  • Не отрывать вас от отрасли, но и делает предыдущие коммиты стать "болтается". (То есть движется как HEAD и BRANCH указатели)

Интересно, один имеет смысл для обновления к тегу, то есть должно быть производство сброшена или проверены. Я знаю, что сборщик мусора может запускаться, удаляя оборванные коммиты, но опять же, если производство всегда «тянет» до процесса обновления в тег, я не вижу ничего плохого.

Должно ли обновление производства к тегу с reset или checkout, учитывая, что pull всегда выполняется до этого обновления?

ответ

14

Интересно, один имеет смысл для обновления с тегом

Ваше производство установки следует проверить тег.

Подумайте об этом так: ваша производственная установка доступна только для чтения. git reset --hard tag-name изменит текущую проверку.

Альтернативно

Это обычная практика, что в дополнение к созданию тега, то есть одна ветвь, просто последний выпуск. В этом случае вы, например, слияние для создания и создания тега; и на ваших производственных установках вы обновляете просто с помощью git pull (на master).

Смежные вопросы