我不小心執行了一次git revert,這樣我就可以改掉之前緊接著的提交資訊中的一個拼寫錯誤
。$ git commit -m "fix: pagination for tag, auhtor pages"
[dev 389531c] 修復:標簽的分頁,auhtor頁面的分頁
10個檔案被修改,398個插入( ),64個洗掉(-)。
...
$ git revert 389531c
我丟失了我所有的修改,想把它們找回來。我已經嘗試了git reset 389531c和git cherry-pick 389531c,但是我沒有拿回我提交的修改,而是把自己挖到了reset。有什么辦法能把它們找回來嗎?我不熟悉 "高級 "的git命令,
我想要的是得到我在 HEAD@{4} 中提交的修改。這是我的 git reflog> 謝謝。
$ git reflog
389531c (HEAD -> dev) HEAD@{0}: reset: moving to 389531c
389531c (HEAD -> dev) HEAD@{1}: reset: moving to 389531c
389531c (HEAD -> dev) HEAD@{2}: reset: moving to HEAD@{1}.
e7d8df9 HEAD@{3}: revert: 回復 "修復:標簽的分頁,auhtor頁面"
389531c (HEAD -> dev) HEAD@{4}: commit: fix: pagination for tag, auhtor pages
f4c0fb3 (origin/main, origin/HEAD, main) HEAD@{5}: 簽出:從main移至dev
uj5u.com熱心網友回復:
解決方案:在你的重置命令中添加--hard。
原因:git reset 389531c命令默認為--mixed,這意味著你的還原的改動將是待定的,并且仍然存在于你的本地目錄中。當你做--hard時,它也會洗掉那些被恢復的修改。 你可以做的另一件事是在混合重置后撤銷你的待定更改。
旁注:正如 Leonardo Alves Machado 在評論中指出的,修復拼寫錯誤的一個簡單方法(在硬重置后你仍然可以這樣做)是進行你的小調整并修改你現有的提交(git commit --amend)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/308175.html
標籤:
上一篇:用本地檔案覆寫整個遠程檔案
