2012-05-25 9 views
15

thisのような質問がありますが、それは私が求めていることではありません。「git checkout tag-name」と「git reset -hard tag-name」の比較

  • が枝からあなたを切り離し:

    git checkout tag-name

    は私も知っています。

    • が枝からあなたを切り離しませんが、「ぶら下がり」になるために、以前のコミットを行います(すなわち、HEADポインタを移動BRANCHポインタを保持します)

    git reset --hard tag-name。私は1つは、タグに更新するための、より理にかなっている、すなわち生産がresetedまたはチェックアウトすべきだろう

(すなわち、両方のHEADBRANCHポインタを動かします)。ガベージコレクタが動いてダングリングコミットを取り除いていることは知っていますが、タグに更新する前に常に生産が "引き出されている"場合は、何も見えません。

resetまたはcheckoutというタグのプロダクションを更新する場合は、このアップデートコールの前に常にpullが実行されていることを考慮してください。

答えて

14

は、私は1つが

あなたの生産は、タグをチェックアウトする必要がありますインストールしたタグに更新するための、より理にかなっているだろう。

このように考えると、本番のインストールは読み取り専用です。 git reset --hard tag-nameは、現在チェックアウトされているブランチを変更します。

はまた

それはタグの作成に加えて、あなたは、単に最新のリリースで1本の枝を持っているのが一般的です。その場合は、マージしてそこからタグを作成してください。あなたのプロダクションインストールではgit pull(マスター上)で単に更新します。

関連する問題