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
[root@Jenkins 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  
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/weixin_40441128/article/details/83650010