問題描述
在開發的過程中,想要修改一個參數的命名。然后修改各種地方,並且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