1, 結合使用 git reset --hard <commit id> , git reset --hard HEAD^, git reflog , git log
1) 使用 git log 查看你需要回退版本的commit id, 如果git log顯示的結果看着不舒服可以多加一個參數 --pretty=oneline (git log --pretty=oneline)
2) 使用git reset --hard <commit id>
3) 在第2)的時候需要找到對應的commit id,
Scenario 1 : 你已經回退到某個你指定的版本,但是你這時后悔了想再次回到最新的版本,可以通過 git reset --hard HEAD^ 實現。
Scenario 2 : 你已經回退到你指定的A版本,但是你實際上應該回退到A版本后面的B版本,你這是又無法通過 git log查看commit id;這時你可以執行git reflog找到B版本的commit id。
這時你可以通過第2)步的命令來實現。
PS : 這種方法是不會再當前比較粗暴的方式,因為他不會保留你已經回退的版本之后版本的log(有點拗口),下面我們介紹一種回退到你指定的某個版本,並且保留log的方法
2,結合使用git checkout <commit id> -- <paths>, git reflog, git commit -m 'xxxxxxx'
1) 使用git log 或者 git reflog 找到你想要回到的哪個版本的commit id
2) 使用 git checkout <commit id> -- <paths> 返回到你想要返回的版本, <paths>參數代表的是你想要指定哪個或者哪幾個文件
3) 執行完第2)步之后需要執行git commit -m '' 命令提交你當前的修改
