在使用 git 的時候我們都可能會遇到**誤刪的情況的,筆者就遇到了誤刪 stash 中的**,在這裡記錄一下如何找回誤操作的 git stash 的**。
在進行多分支管理**時,我們經常需要在沒完成功能的開發時就需要緊急切換到master 分支進行 hotfix。而我們後不想將未完成的**進行提交,因此就需要進行**暫存,git 為我們提供了乙個簡單的**操作,那就是 git stash。使用該命令我們就可以將**暫存至**快取倉庫中,在進行完 hotfix的時候我們只需要再切換回原來的分支進行git stash pop
即可將快取的**進行恢復了。
筆者一如既往的如此操作,終於在一天,在切換分支的時候切換錯了,git stash pop
出棧的**恢復到了別的分支去了,然後筆者也是很眼明手快地刪掉了**。
沒聽錯是刪掉了!!
是刪掉了!!
然後就踏上了苦逼的找回**的歷程了。
在此簡單記錄一下找回**的步驟。
其實操作十分簡單,僅僅幾步即可。
使用git stash pop
其實並沒有真正地將檔案刪掉的,而是刪除引用而已,因此我們可以使用git fsck
命令進行找回,搭配引數--unreachable
,讓git-fsck
顯示出所有不可訪問的物件。
然後使用git show
乙個個對輸出的物件進行檢視:
很明顯可以看到輸出,簡單確認後你可以判斷這個檔案是不是你誤刪的,找到後進行備份轉儲。
git show 302063e31742cbce7c5fdb917edf520183154cc1 > d:\recovery\backup.txt該命令可以將顯示的內容輸出到指定的路徑
就這樣筆者一步步找回了**了!!
記git stash誤刪除後的一次恢復
我想把來龍去脈都好好理理。事情是這樣的 今天更改了一些檔案,現在臨時需要修乙個其他分支的bug。臨走前看了一眼自己今天的工作量。嗯現在新建分支去修bug 萬惡的起源在這裡。在今天的工作量中我新建了幾個檔案並且移動了幾個檔案,未add的檔案不阻止切換分支,並且在所有分支上都顯示為未跟蹤 我基於以前都是...
記一次SQLServer資料庫誤刪資料找回
昨天 同事在本機清理資料庫表時,連線到了生產機,誤刪了二十幾張表,幸好是晚上加班的時候刪除的,生產機上當時是一天一備份,還原備份是最後的策略,最關鍵的還是要找回資料。生產機環境是server2008 r2 sqlserver2012,使用delete語句刪除的表現在開始還原,還原可參考dudu的這篇...
記一次除錯
這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...