2012-05-25 143 views
15

我知道有像this這樣的問題,但這不是我所要求的。「git checkout tag-name」vs「git reset --hard tag-name」

我也知道:

git checkout tag-name

  • 拆離你從分支。 (即移動HEAD指針,不斷BRANCH指針)

git reset --hard tag-name

  • 不從分支分離你,但使得以前提交成爲 「懸空」。 (即移動既HEADBRANCH指針)

我不知道哪一個更有意義用於更新標籤的,即應該在生產先復位或簽出。我知道一個垃圾收集器可能會運行,刪除懸而未決的提交,但是如果在更新到一個標記之前總是「拉」生產,那麼我看到沒有什麼不好的地方。

考慮到在此更新呼叫之前總是完成pull,是否應該對resetcheckout的標籤進行生產更新?

回答

14

我不知道哪一個更有意義的更新標籤

您的生產安裝應該檢查出的標籤。

想想這樣:你的生產安裝是隻讀的。 git reset --hard tag-name將修改當前簽出的分支。

或者

這是常見的做法,除了創造一個標籤,你有一個分支,它僅僅是最新版本。在這種情況下,你可以合併爲主並從那裏創建標籤;並且在你的生產安裝中,你只需使用git pull(在主服務器上)進行更新。

相關問題