git遠端倉庫回退

2022-07-20 15:12:15 字數 2262 閱讀 3450

1. git log (找到你想要回退的版本id,將它複製下來)

2. git reset --hard 版本id (本地回退到目標版本)

3.git push --force (推送到遠端倉庫,實現回退)

1. git log (找到你想要刪除的版本id,將它複製下來)

2. git revert 版本id (本地回退到目標版本)

3.git push --force (推送到遠端倉庫,實現回退)

reset與revert最大的區別在於:revert是新提交乙個commit來撤回**,而reset只是回到某個版本的**commit

雖然兩者都能回退到你想要的**,但是對於遠端倉庫,當使用reset回退,其他同事的**pull release拉最新**,拉取到的結果並不會回退你的**,因為pull是fetch與merge的結果,對於已有的commit進行merge是沒有效果的。

而revert是新的commit,此時merge新的commit就能回退到你的**

git branch backup

提測的**(已合入release),決定暫時不上生產,需要回退遠端倉庫的**

舉例如下:b與d的**需要回退,a為線上版本,c為其他同事提交的**

對乙個檔案新增b,c,d的三個修改,分別提交

目標是回退bd剩下ac

2.1 手工修改最新版本**

直接從最新的版本修改**,修改到我們想要版本,然後再提交上去,也就是手工回退。在這個例子中就是直接刪除『bd』後提交

手工改**很容易出錯

(1)     沒有回退所有需要回退的**

(2)     刪除了不需要回退的**

2.2 本地倉庫reset後強推到遠端倉庫,其他同事需手動reset

存在問題:

(1)     需要回退的**夾雜了其他同事的commit,直接reset會把其他同事的**也刪除掉

(2) 遠端倉庫後退後,需要其他同事未回退的同事手動reset它們的本地倉庫,否則其他同事提交會把刪除的**再次提交上去

2.3 拷貝release,遠端倉庫刪除release分支後再覆蓋

與2.2 reset相似:

從要刪除的版本的前乙個版本拉乙個拷貝分支,然後在遠端倉庫刪掉release分支,再將拷貝分支推到遠端release。

存在問題:需要讓其他同事(本地版本領先於回退後的遠端倉庫版本)重拉專案或回退

2.4本地倉庫revert後強推到遠端倉庫

revert作用是消除乙個commit,它的原理是新建乙個commit反向修改目標commit

revert與reset最主要的區別:revert是去除乙個commit,reset是回到某個版本

對於此場景適用revert,我們只要把b與d的提交revert掉,就能達到目的

revert實現的回退,不需要其他同事重拉專案或者手動回退專案

2.5 在gitlab上執行revert

需要注意的是在gitlab上revert,必須是無衝突的時候才成功,在此場景下有衝突就失敗了

(1)回到某個版本,使用reset;消除某個commit,使用revert

(2)     使用git reset實現回退到某個版本,需要讓其他同事也回退或者重拉專案

(3)     revert有可能要手動處理衝突,reset沒有這個問題

(4)     對release分支使用git push –force(強制推送)有風險,應該進行備份;或者對自己的分支進行revert,然後提merge request合併到release

(5)     如果沒有revert衝突,建議在gitlab上執行revert

Git 遠端倉庫版本回退

多人合作的專案,同事a誤提了錯誤的東西,並把其他同事修改正確的檔案給覆蓋提交了,線上的專案是有問題的。所以需要回退到同事a的誤提交之前的版本。即遠端倉庫版本回退。步驟 1.使用git log命令檢視歷史提交記錄,選擇要回退的版本號,commit後面一串字元,這裡我們選擇回退到commit 8622e...

git 遠端倉庫版本回退方法

1 問題 如果提交了乙個錯誤的版本,怎麼回退版本?如果提交了乙個錯誤的版本到遠端分支,怎麼回退遠端分支版本?如果提交了乙個錯誤的版本到公共遠端分支,又該怎麼回退版本?3 本地分支版本回退的方法 如果你在本地做了錯誤提交,那麼回退版本的方法很簡單 4 先用下面命令找到要回退的版本的commit id ...

git遠端倉庫版本回退方法

自己的分支回滾直接用reset 公共分支回滾用revert 錯的太遠了直接將 全部刪掉,用正確 替代 如果你在本地做了錯誤提交,那麼回退版本的方法很簡單 先用下面命令找到要回退的版本的commit id git reflog 接著回退版本 gitreset hard obfafd 0bfafd就是你...