git 遠端分支回滾

2021-08-30 17:22:42 字數 1672 閱讀 3056

git**庫回滾: 指的是將**庫某分支退回到以前的某個commit id

【本地**庫回滾】:

git reset --hard commit-id :回滾到commit-id,講commit-id之後提交的commit都去除

git reset --hard head~3:將最近3次的提交回滾

【遠端**庫回滾】:

這個是重點要說的內容,過程比本地回滾要複雜

應用場景:自動部署系統發布後發現問題,需要回滾到某乙個commit,再重新發布

原理:先將本地分支退回到某個commit,刪除遠端分支,再重新push本地分支

操作步驟:

1、git checkout the_branch

2、git pull

3、git branch the_branch_backup //備份一下這個分支當前的情況

4、git reset --hard the_commit_id //把the_branch本地回滾到the_commit_id

5、git push origin :the_branch //刪除遠端 the_branch

6、git push origin the_branch //用回滾後的本地分支重新建立遠端分支

7、git push origin :the_branch_backup //如果前面都成功了,刪除這個備份分支

如果使用了gerrit做遠端**中心庫和code review平台,需要確保操作git的使用者具備分支的push許可權,並且選擇了 force push選項(在push許可權設定裡有這個選項)

另外,gerrit中心庫是個bare庫,將head預設指向了master,因此master分支是不能進行刪除操作的,最好不要選擇刪除master分支的策略,換用其他分支。如果一定要這樣做,可以考慮到gerrit伺服器上修改head指標。。。不建議這樣搞

1、新建backup分支 作為備份,以防萬一

git branch backup
2、將本地的backup分支 推送到遠端的backup

git push origin backup:backup
3、本地倉庫徹底回退到***xx版本,***xx版本之後的commit資訊將丟失

git reset --hard ***xx
4、刪除遠端的master分支 (注意master前有個:)

git push origin :master
主要遠端倉庫的master如果是保護分支將報錯,請去掉對分支的保護設定:

remote: gitlab: you are  allowed  to  deleted protected branches from this project. to  ! [remote rejected] master (pre-receive hook declined)

error: failed to push some refs to ''

5、重新建立遠端master分支(這跟第1次提交本地**庫給遠端倉庫的命令一樣)

git push origin master
1、本地**回滾到上一版本(或者指定版本)

git reset --hard head~1
2、加入-f引數,強制提交,遠端端將強制跟新到reset版本

git push -f origin master

git 回滾 遠端庫

回滾分三步 1 備份你當前的 庫乙份,不是必須的操作,但是提醒要 做的,當然有可以用git branch backup 把當前的版本備份到乙個新的分支 2 git log找到要回滾的版本 3 git reset hard 要回滾到的版本號,比如 git reset hard 91deaf 檔案都回來...

git遠端倉庫回滾

使用git管理專案開發的過程中經常會碰到這種情況 某次提交已經push到了遠端倉庫,可是突然意識到 天哪,我怎麼做了這麼蠢的事情 那麼問題來了,怎麼將遠端 庫回滾呢?在網上看到大部分人給出的解決方案是先將本地回滾,然後刪除遠端分支,之後再將本地的分支push到遠端倉庫,這其實是一種很危險的方案,畢竟...

git 遠端倉庫回滾

git branch backup 建立備份分支 git push origin backup backup push到遠端 git reset hard commit id 本地分支回滾 git push origin the branch 刪除遠端分支 git push origin the b...