GitLab分支使用revert回滚后导致合并请求时代码异常处理

一、问题原因

由于使用了revert进行回滚,导致分支保留了一次删除文件的git记录,若回滚数据中保含新增的文件,根据提交ID和对应的时间顺序,会导致合并时,文件被回滚记录异常删除。

二、GitLab回滚方式revert和reset

revert-百度AI

目的‌

创建一个新的提交,用于撤销之前的提交。这个新的提交会记录下撤销的更改,从而保留提交历史。

‌适用场景‌

适合在公共分支上撤销已经提交的更改,因为它不会影响其他开发者已有的工作。Revert操作保留了提交历史,并且可以撤销任意提交,而不仅限于最近的提交。

‌操作方式‌

首先确定要回退的提交,然后使用git revert命令加上要回退的提交的哈希值。如果回退过程中出现冲突,需要手动解决这些冲突,然后添加更改,最后完成revert操作。完成revert操作后,可以将新的提交推送到远程仓库。

reset-百度AI

‌‌目的‌

主要用于在本地进行操作,将当前分支的HEAD指针和指定的提交重置为不同的位置。它可以用来撤销提交,删除提交历史,回滚到以前的版本。

‌‌影响‌

根据提供的参数(--soft, --mixed, --hard),Reset可以仅移动HEAD指针,也可以改变暂存区或工作目录。使用Reset可能会丢失一些更改,因此需要谨慎使用。

‌‌适用场景‌

如果你仅仅在本地进行操作,想要撤销一些更改,你可以使用Reset。特别是当你需要彻底回退到指定的commit版本,且不关心该commit后的所有commit被清除时。

三、处理方案

使用reset回滚,但是要注意之后的历史记录会被清理掉

git reset --hard 【提交的gitcommit id】
git push --force origin HEAD
});
 

异常处理
push失败,提示“error: failed to push some refs to”
原因是分支为受保护分支

致谢-参考文档

【git reset的四种区别】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值