Git 遠端回滾


查找提交記錄

$ git log

commit 16577b2c2b8d1f6e92528aa417acc83dcd2f4b64
Author: 陳子雲 <ever-lose@foxmail.com>
Date:   Wed Mar 8 17:31:26 2017 +0800

    commit最近記錄1

commit fec5d9f293c4aecad66c9a1414d2e3045be04aad
Author: 陳子雲 <ever-lose@foxmail.com>
Date:   Mon Feb 6 15:58:29 2017 +0800

    commit最近記錄2

commit 0279a5684d59afbc0ed568e1c2319395da0a3eeb
Merge: 1e93cdd 64f9f9e
Author: 陳子雲 <ever-lose@foxmail.com>
Date:   Wed Jan 11 14:06:20 2017 +0800

    commit最近記錄3

找到最近若干次的commit記錄,假如我們需要舍棄記錄1和記錄2,希望直接把遠端的分枝回滾到記錄3。

強制回滾

$ git reset --hard 0279a568

HEAD is now at 0279a56 commit最近記錄3

# 如果只是要回到之前一個提交記錄
# git reset --hard HEAD^1

其中--hard后面的八位字符時上面提交記錄里的commit后面的一串的前八位。

$ git status

On branch master
Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

查看得知本地回滾成功,但是遠程的庫還沒回滾。

遠程回滾

$ git push -f origin master

Total 0 (delta 0), reused 0 (delta 0)
To git.souche.com:fis-projects/dafengche-maintain-query-f2e.git
+ 16577b2...0279a56 master -> master (forced update)

成功的提示如上。但是如果執行后不成功,提示如下的話,則需要上 gitlab/github 上設置 Protected Branches 了,為的是去除本分支的保護后才能強制覆蓋提交。

$ git push -f origin master

Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To git.souche.com:fis-projects/dafengche-maintain-query-f2e.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@git.souche.com:fis-projects/dafengche-maintain-query-f2e.git'


免責聲明!

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



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