1. 程式人生 > >gitlab回滾程式碼:開發人員誤提交程式碼到遠端gitlab伺服器,回滾方法

gitlab回滾程式碼:開發人員誤提交程式碼到遠端gitlab伺服器,回滾方法

開發人員錯誤將程式碼提交到gitlab的dev分支,回滾方法如下:

1、本地回滾

進入git bash,進入該工程目錄:

[email protected] MINGW64 ~
$ cd c:

[email protected] MINGW64 /c
$ cd git_home

[email protected] MINGW64 /c/git_home
$ cd zntp

[email protected] MINGW64 /c/git_home/zntp (dev)
$ git log
commit 095d0ada370c32ace4fd2ebcd4372beea9a64f77
Author: MirGao <
[email protected]
> Date: Fri Nov 23 16:50:28 2018 +0800 實現介面數量7個 commit b8b9fa09775a511d522e584a3be6817c9de7e43b Author: PC-20180625CLEK\Administrator <[email protected]> Date: Mon Oct 15 14:58:07 2018 +0800 bug修改

確認回滾到版本“commit” = b8b9fa09775a511d522e584a3be6817c9de7e43b,bug修改;操作方法如下:

[email protected] MINGW64 /c/git_home/zntp (dev)
$ git reset --hard b8b9fa09775a511d522e584a3be6817c9de7e43b
HEAD is now at b8b9fa0 bug修改

切換分支: git checkout dev

至此版本回退完畢,但是此時如果提交到遠端,注意:這只是本地撤消,如果已經push到伺服器了,則此操作只回退了本地,伺服器不受影響,下次git push要求先執行git pull,又將伺服器的merge記錄下載到本地了。其實不能達到遠端回退的要求。

2、遠端回退

登陸gitlab伺服器,進入專案對應的目錄底下操作。此操作相當危險,在操作一定要先將相應專案的目錄整個打包備份;然後進入到專案資料夾中操作:

cd /data/gitlab/repositories/alibaba/zntp.git
git checkout dev 
#此時會報錯:fatal: This operation must be run in a work tree 
#原因在於:git配置了環境變數,命令無法識別到作用的工程名稱,所以需要加上--work-tree引數
git --work-tree=/data/gitlab/repositories/alibaba/zntp.git reset 
--hard b8b9fa09775a511d522e584a3be6817c9de7e43b
HEAD is now at b8b9fa0 bug修改
#即可實現程式碼回滾
#git --work-tree的用法:[--work-tree=<path>]

回退完畢。