1. 程式人生 > >Gitlab高階應用——程式碼回滾

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  
版權宣告:本文為博主原創文章,轉載請附上博文連結!