2012-05-25 17 views
15

Wiem, że są takie pytania, jak this, ale nie o to pytam."git checkout tag-name" vs "git reset --hard tag-name"

wiem też, że:

git checkout tag-name:

  • Odłącza się od oddziału. (Tj porusza HEAD wskaźnik, wskaźnik utrzymuje BRANCH)

git reset --hard tag-name:

  • nie oddziela cię od branży, ale sprawia, że ​​wcześniejsze zobowiązuje się stać "zwisające". (Tj porusza zarówno HEAD i BRANCH wskaźniki)

Zastanawiam się, który z nich ma większy sens dla aktualizacji do znacznika, to znaczy powinna być produkcja reseted lub wyrejestrowany. Wiem, że odśmiecacz może działać, usuwając zwisające zatwierdzenia, ale z drugiej strony, jeśli produkcja jest zawsze "wyciągnięta" przed procesem aktualizacji do tagu, nie widzę w tym nic złego.

Czy aktualizacja produkcji do tagu z reset lub checkout, biorąc pod uwagę, że pull jest zawsze wykonywane przed tym wywołaniem aktualizacji?

Odpowiedz

14

Zastanawiam się, który z nich ma większy sens dla aktualizacji do znacznika

produkcję instalacji należy sprawdzanie znacznik.

Pomyśl o tym w następujący sposób: instalacja produkcyjna jest tylko do odczytu. git reset --hard tag-name zmodyfikuje aktualnie wyrejestrowany oddział.

Alternatywnie

Jest to powszechna praktyka, że ​​oprócz tworzenia znacznika, masz jeden oddział, który jest po prostu najnowsza wersja. W takim przypadku możesz np. scalaj, aby opanować i stwórz z niego tag; i na twoich instalacjach produkcyjnych, które uaktualnisz po prostu git pull (na master).

Powiązane problemy