今天因為測試 css 的 cache,但是跑 development 環境時,cache 並不會有作用,因為本機測試正常,打到 stage 機器上就爆炸了orz

但是這時候,你又已經做了 commit 並 push 到repository 上,要怎麼解決呢?

 

如果你知道是哪一項 commit 造成這個錯誤,可以下 git revert 把那項變更還原,但是如果說想從現在倒回到某次變動(比如倒回4次 commit ),今天學到一個方法。

首先指令下 git reset "某次 commit 的 SHA 值",這裡注意,給出的 SHA 值就會回到那次 commit 結束後的狀態。
例如 git reset a8b5a0afea1e1f5faccda4a698c0002bdcc7bf892

這樣 commit 的狀態就會回到該時間點,但是修改的內容還是目前最新的狀態,因此 git status 會發現這段時間 modified 過的檔案。
接著下 git checkout -f ,checkout可以幫你把更動過的檔案,回到最後一次 commit 時的狀態,所以檔案的狀態就會變成跟倒回的時間點相同。

最後下 git reset original/master,將 commit 的位置直接指向最新的地方,然後 commit 並 push ,就可以看到 repository 又回到你指定時間點的狀態,而且中間變動過的 commit log 也都還在!
注意一點,commit 指向的位置,可能隨著你的專案還不同,像我現在的位置是指向 production/master 。 

 

笨笨小蟹 發表在 痞客邦 PIXNET 留言(0) 人氣()