Git 回滾代碼的正確姿勢

并不適合閱讀的個人文檔。

git revertgit reset 的區(qū)別

先看圖:

image.png

sourceTreerevert 譯為提交回滾,作用為忽略你指定的版本,然后提交一個新的版本。新的版本中已近刪除了你所指定的版本。

reset重置到這次提交,將內(nèi)容重置到指定的版本。git reset 命令后面是需要加2種參數(shù)的:–-hard–-soft。這條命令默認情況下是 -–soft。

執(zhí)行上述命令時,這該條commit號之 后(時間作為參考點)的所有commit的修改都會退回到git緩沖區(qū)中。使用git status 命令可以在緩沖區(qū)中看到這些修改。而如果加上-–hard參數(shù),則緩沖區(qū)中不會存儲這些修改,git會直接丟棄這部分內(nèi)容。可以使用 git push origin HEAD --force 強制將分區(qū)內(nèi)容推送到遠程服務(wù)器。

代碼回退

默認參數(shù) -soft,所有commit的修改都會退回到git緩沖區(qū)
參數(shù)--hard,所有commit的修改直接丟棄

$ git reset --hard HEAD^        回退到上個版本
$ git reset --hard commit_id    退到/進到 指定commit_id

推送到遠程

$ git push origin HEAD --force

可以吃的后悔藥->版本穿梭

當你回滾之后,又后悔了,想恢復(fù)到新的版本怎么辦?

git reflog打印你記錄你的每一次操作記錄

$ git reflog

輸出:
c7edbfe HEAD@{0}: reset: moving to c7edbfefab1bdbef6cb60d2a7bb97aa80f022687
470e9c2 HEAD@{1}: reset: moving to 470e9c2
b45959e HEAD@{2}: revert: Revert "add img"
470e9c2 HEAD@{3}: reset: moving to 470e9c2
2c26183 HEAD@{4}: reset: moving to 2c26183
0f67bb7 HEAD@{5}: revert: Revert "add img"

找到你操作的id如:b45959e,就可以回退到這個版本

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

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

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