git 錯誤操作恢複

來源:互聯網
上載者:User

標籤:com   檔案   os   類   代碼   時間   

前天辛苦用了一天時間,寫完關鍵代碼後。用 git 提交,由於修改的東東較多,用一個檔案儲存了修改的注釋,用於 git commit -F commit.txt 。由於是在 windows 平台,所以這個檔案是用的 gbk 編碼。所以提交後,用 git log 查看日誌時,出現亂碼。此時就想用 git rebase -i HEAD~1 來修改注釋。在選擇命令時,用了 x ,進行命令列後,我直接 git commit -F commit.txt.。導致剛才的提交丟失。所以得恢複剛才的提交。

git 中有命令: git fsck --lost-found
可以查到丟失的。由於項目有段時間了,所以找到了一千多條記錄。要在這一千條記錄中找到我剛才丟失的那條可真不容易。所以此法不通。

於是,我瀏覽 .git  目錄,發現裡面有個 logs 目錄,查看 HEAD,居然能看到剛才提交操作的日誌,把那個版本號碼 git show,就是剛才提交的類容。

再把 .git/refs/heads/master 中的內容改成剛才的版本號碼,儲存。再 git log。哈哈。。。剛才丟失的類容找回來了。

剛才在寫這篇文章時,又百度了一把(天朝屏蔽了google,百度要用時不給力,不用時,卻跑出來),發現  git 中有 git reflog 命令,能查看所有的動作記錄。用 git cherry-pick 來進行恢複。比我前天的操作方法要安全。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.