天天看點

git如何恢複stash save後被reset hard清空的代碼

今天做了一件讓人非常抓狂的事。

我在分支A上開發,然後測試讓我把分支B上的代碼合到develop上,一直的習慣是先把A上的代碼做暫存,即stash save而不是送出commit,然後在切換到develop上合并B分支代碼,今天也是這樣做。

但是由于某種原因,我在develop分支上,做了reset hard操作,這個操作的意思是:把repository作修改的東西被還原,還有其他參數mixed、soft,差別請gg。做這個操作是因為,一直以來都沒什麼問題,但是當我切換到A分支後,發現之前暫存的東西,沒了。

問大神,大神說,stash清空的東西,沒救了。

不錯,确實沒救,真的沒救了

所幸的是,本人用idea開發,idea有一個隔段時間進行備份檔案變更的這個功能,在“右鍵項目” -> "Local History" -> "Show History",它會把所有變更的檔案都展示出來,是以,我就通過這裡,把今天所有寫的代碼找回來了,雖然花了大概半個小時,但是總比重新寫好,而且是一整天寫的代碼。

總結:平時開發,每寫完一個功能點,就commit一次,這也是git建議的