git回退到歷史版本以及再滾回去


問題描述

在開發的過程中,想要修改一個參數的命名。然后修改各種地方,並且push上碼雲的遠程倉庫。然后突然發現還要改很多地方,突然后悔不想改動了。那該怎么辦呢?

處理步驟

  • 回退本地的git版本
  • 將本地的代碼強制推送至遠程倉庫中

回退本地git版本

  • 首先查看git版本信息,使用git log
$ git log
commit 6fecbc4fc9d7e23f5c66a504a413cc1ed4ed7f0c (HEAD -> master, origin/master,origin/django-template, origin/HEAD, django-template) Author: kubernete <357018097@qq.com> Date: Thu Aug 15 22:24:16 2019 +0800 修改table行數的參數名為table-lines commit 0e149c39eb4401647a9468eaf2b68b45832dbcb2 Author: kubernete <357018097@qq.com> Date: Thu Aug 15 22:05:07 2019 +0800 取消tab菜單的360度翻轉動畫效果 commit 7c4b1492616ae788e9f58461c72fc12f6c9b1e2d Author: lijw <357018097@qq.com> Date: Thu Aug 15 19:44:24 2019 +0800 編寫設備機組列表中查詢隱藏域填充顯示table行數

看了上面的git提交日志,我不想要修改table行數的參數名為table-lines這次的代碼提交,想直接回退到取消tab菜單的360度翻轉動畫效果的版本。 那么可以直接執行回退到上一版本。

  • 執行回退到上一版本,使用git reset --hard HEAD^
# 執行回退至上一次提交的版本
$ git reset --hard HEAD^ HEAD is now at 0e149c3 取消tab菜單的360度翻轉動畫效果 # 查看log確認一下 $ git log commit 0e149c39eb4401647a9468eaf2b68b45832dbcb2 (HEAD -> master) Author: kubernete <357018097@qq.com> Date: Thu Aug 15 22:05:07 2019 +0800 取消tab菜單的360度翻轉動畫效果 commit 7c4b1492616ae788e9f58461c72fc12f6c9b1e2d Author: lijw <357018097@qq.com> Date: Thu Aug 15 19:44:24 2019 +0800 編寫設備機組列表中查詢隱藏域填充顯示table行數

強制將本地代碼推送至遠程倉庫

但是到了這里,其實只是本地回退了版本而已,遠程倉庫的並沒有回退。如果想要將本地的代碼直接push到遠程倉庫則會報錯如下:

$ git push
To gitee.com:kubernete/Performance-Test-Management-demo.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@gitee.com:kubernete/Performance-Test-Management-demo.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

這里會提示需要更新遠程倉庫,如果更新執行git pull的話,又會將剛才回退的版本下載回來。

此時需要強制將本地代碼推送至遠程倉庫之中,使用git push -f origin master

執行如下:

$ git push -f origin master
Total 0 (delta 0), reused 0 (delta 0) remote: Powered By Gitee.com To gitee.com:kubernete/Performance-Test-Management-demo.git + 6fecbc4...0e149c3 master -> master (forced update)
這樣就GITHUB上的版本就是歷史版本了,直接CLONE就可以下載下來

GIT回滾之后再滾回去:
使git reflog查看之前操作的commit信息,然后使用 git reset --hard 7d2bc17 回到7d2bc17操作時對應的版本;

文章轉載自:https://cloud.tencent.com/developer/article/1490112,https://blog.csdn.net/shruber/article/details/78269046


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM