1. 程式人生 > 實用技巧 >[GIT]辨析/區別: git reset HEAD 與 git reset --hard HEAD

[GIT]辨析/區別: git reset HEAD 與 git reset --hard HEAD

1 文由

時常有這樣一種場景,不小心改動了部分檔案,或修改了部分檔案卻發現無用,此時可能還沒有git push,也可能push了;又可能commit了,或者還沒有commit。
此時,我們想撤銷(git reset)到遠端倉庫或本地倉庫的最新最近一次的正式版本中來。那麼,怎麼做?

2 解決方案

[情況1]
git checkout <filename/branch/tag>
# 替換/覆蓋本地改動。
# 將使用HEAD指標所指的最新內容替換工作目錄中的檔案;已新增到暫存區(含:新建檔案)的改動不會受影響[git add -A xx 以後]。

[情況2]
git fetch origin
git reset --hard origin/<remoteBranchName>
# 丟棄在本地的所有改動與提交(commit),可到伺服器上獲取最新的版本。

3 辨析

git reset HEAD  回退。將暫存區和HEAD的提交保持一致 

git reset --hard HEAD 回退。將工作區、暫存區和HEAD保持一致

4 參考文獻