Gitlab高階應用——程式碼回滾
Gitlab撤消merger和撤消commit原理及操作一致
步驟一:切換到需要回退的分支
git checkout qa
如果如下錯誤:
fatal: This operation must be run in a work tree
則指定–work-tree引數,如下:
git –work-tree=/data2/apps/gitlab/git-data/repositories/groupname/web-trade.git checkout qa
步驟二:檢視需要回退至某個版對應的commitId.
cd /Users/deng/git/web-trade
[[email protected] web-trade.git]# git log
commit 6a9aeb957caa1d860610f43b473983b36cf94ab0
Merge: 8cbc3d0 42694ed
Author: xxxxx [email protected]
Date: Tue Apr 26 15:32:03 2016 +0800
Merge branch 'trade-web-v1.1.1.1' into 'master'
Trade web v1.1.1.1
重複支付,退款撿起放開。
See merge request !38
日誌解釋說明:
此條是一次merge的完整日誌,本次commitId為:6a9aeb957caa1d860610f43b473983b36cf94ab0
本次操作內容是將commitId: 42694ed 合併到commitId: 8cbc3d0上,
如果想要撤消此次merge,則需要回退至commitId: 8cbc3d0上。
Merge: 8cbc3d0 42694ed 後面接的Id是每次提交的commitId, 全稱長度為32位,此處採用了簡寫,只列出前七位,後續的操作可以用簡寫也可以用全稱。
步驟三:回退到此commitId【本地撤消】。
git reset --hard 8cbc3d0
注意:這只是本地撤消,如果已經push到伺服器了,則此操作只回退了本地,伺服器不受影響,下次git push要求先執行git pull,又將伺服器的merge記錄下載到本地了。
步驟四:回退到此commitId【遠端撤消】
cd /data2/apps/gitlab/git-data/repositories/groupname/web-trade.git
git reset --soft 8cbc3d0
登陸gitlab伺服器,進入專案對應的目錄底下操作。此操作相當危險,在操作一定要先將相應專案的目錄整個打包備份
步驟五:確認結果
再次執行git log,可以看到,需要撤消的merge已經不再出現在日誌列表中了。
---------------------
作者:一個CD包
來源:CSDN
原文:https://blog.csdn.net/yu12377/article/details/73324364
版權宣告:本文為博主原創文章,轉載請附上博文連結!