不經一事,不長一智啊….
以前用 Git 幾乎都是一人專案,最近才開始有協同工作的專案。這天在 fetch 了新的進度後,就很順手 pull 了… 然後就爆了。
因為我忘記切換 branch 就 pull,結果被合併到別線上去了。還好只有我本機掛掉,大不了砍掉 repo 重建一次就好。
不過想想還是看一下怎麼回復上一動好了,StackOverflow 真是工程師的好朋友。
用此指令可以查 HEAD 變化的歷史紀錄。
$ git reflog show
結果如下
$ git reflog show cc7cb8e HEAD@{0}: pull pic3@dropbox user/auth: Merge made by the 'recursive' str 3686266 HEAD@{1}: commit: Database Schema ea26bdb HEAD@{2}: checkout: moving from ea26bdb27a04284e03a119207ade4602d78c06cf ea26bdb HEAD@{3}: checkout: moving from user/auth to ea26bdb27a04284e03a119207ad a6310cb HEAD@{4}: commit: user/auth dev fbaa5a7 HEAD@{5}: checkout: moving from inc/bootstrap to user/auth 7401efb HEAD@{6}: commit: Twitter Bootstrap
可以看到上一個動作是 HEAD@{0} pull 的行為,所以要回復到 HEAD@{1} 的狀態。用以下指令回復。
$ git reset HEAD@{1}
剛回復後檔案會遺留剛剛合併後的檔案,把它們移除就可以了。收工。
Leave a Reply