挽救丟失的git提交

git提交記錄被沖掉是很惱火的事情,在用source tree的時候遇到過好幾次。一直是堅信git是安全的,只要是commit過的,一定在本地有記錄。

被沖掉的提交記錄確實沒有消失,可以通過 git fsck --lost-found 找回來。只是這些提交成了懸掛提交(dangling commit),沒有上下文信息。

運行g(shù)it fsck命令會輸出以下內(nèi)容

Checking object directories: 100% (256/256), done.
Checking objects: 100% (61788/61788), done.
dangling blob df01008849bd95a9a5900301991b5df7e3fd84ac
dangling blob af0260d54f656151b68e3ecd6ac80df84a28f5b6
dangling commit 50048caf77cf5bbee1fd6ea4db3e6b6963e146c5
dangling commit ea0598d6b3f5be47e209d0a76d9871c82c97619c
dangling blob ec0a903510e4db44c83c4b4f6ebace6898913a23
dangling blob e40f48affb1512aa28b7161d987f1f4a394eb1f8
dangling commit 53161c5d8df3b89c64766ae2a7087da81e7cbfce
dangling blob a916140e3f7278873b93d07e63855dc898665298
dangling tree ae167493d8a3cb824bdeeec73a0f35b04922c223
dangling commit 17179c0b19cd1ae8aefdab99958363c2543f03fa
dangling blob 591c08d8a2ba39a331d45d940caf9aacb64c022e
dangling blob 461d38d2b75da7d068b4349cb45e0135462a2502
dangling blob f01e58ba5057ee1dfa7167e8e8f2bf1895186a16
dangling blob 261f8cbc2b9387a59b384e0290221093a2b32ff3
dangling blob e62544a823c035a76821bbdaae5e91295af16146
dangling commit fd270441ec929e4848a5a32b639f9680804c686d
dangling tree 7828f4f88bfff50d1da5aa23a77c086e9743e94b
...

可以通過 git show [commit] 查看改動,如果很幸運找到了丟失的commit,便可以通過 git merge [commit] 把這條修改合并回來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容