Git 中的後悔藥

2021-10-02 01:10:28 字數 1067 閱讀 2173

處理生活中需要**撤回的場景:

工作區中的**想撤回(沒有提交過的)git checkout --add 到暫存區的**想撤回。git reset head提交到本地倉庫的**想撤回。git reset --soft 《版本號》。也可以修改soft為hard放棄版本後的所有修改。

遠端提交的**想撤回。在本地修改完之後,使用命令git push origin 《分支名》 --force

版本號的寫法,有很多種。 1. head表示撤回到上乙個,head^ 表示上上乙個,依次類推。2. 用數字代替,比如撤回到上100個,head~100。3. 使用指定的版本號(hash碼),太長寫前面幾個字元就可以。

狀況1:本地**提交,我想撤回修改,再提交?我的操作,直接執行了git reset head,然後我發現我確實撤回到了上個版本狀態,但是我的修改全都丟失了(真的丟失了嘛?)

很重要的乙個概念:不管是用什麼模式進行 reset,commit 就是 commit,並不會因為你 reset 它然後就馬上消失了

git log --online: 按行顯示提交的日誌資訊(不會顯示reset等提交資訊)

git reflog: 更加詳細的指示每次變更的修訂記錄

解決思路:使用git reflog命令找到想撤回的狀態的hash值,然後在使用git reset hashvalue --hard--hard強迫放棄所有 reset 之後的修改。

只是修改最近一次的commit 資訊

git commit --amend
參考資料

git中的各種後悔藥 - 個人文章 - segmentfault 思否

【狀況題】不小心使用 hard 模式 reset 了某個 commit,救得回來嗎? - 為你自己學 git | 高見龍

git常見後悔藥

撤銷本地全部沒有git add過的修改 git checkout 使用庫上檔案覆蓋本地修改 當然是指用本地庫覆蓋 git checkout file name 回退掉某一次commit,回退方式是自動生成乙個反向的commit,不會影響其他commmitgit revert commitid 將gi...

git上的後悔藥

修改上一次提交的文案 git commit amend 複製 我第一次提交時執行了命令 git add git commit m add some thing 但是commit後悔了,需要做一些修改再提交 再次提交的時候執行 git commit amend 這時候log日誌只顯示一條資訊 撤銷操作...

git reflog 後悔藥操作

穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。git log commit e475afc93c209a690c39c13a46716e8fa000c366 head master author michael liao date fri may 1821 03 362018 ...