git代码回滚操作

git回退历史,有以下步骤:

1.已push后回退:
(1) 使用git log命令,查看分支提交历史,确认需要回退版本的<commit_id>
(2) 使用git reset --hard <commit_id>命令或者git revert <commit_id>,进行版本回退(此时本地已回退)
(3) 在git commit后,再次使用git push origin <分支名> --force命令,
    推送至远程分支(此时线上版本已回退)

快捷命令:git reset --hard HEAD^
注:

HEAD是指向当前版本的指针,HEAD^ 表示上个版本,HEAD^^表示上上个版本

revert和reset的区别:
(1) 在实际生产环境中,代码是基于master分支发布到线上的,会有多人进行提交。可能会碰到自己或团队其他成员开发的某个功能在上线之后有Bug,需要及时做代码回滚的操作。
在确认要回滚的版本之后,如果别人没有最新提交,那么就可以直接用reset命令进行版本回退,否则,就可以考虑使用revert命令进行还原修改,不能影响到别人的提交。

(2) reset命令会把要回退版本之后提交的修改都删除。要从第三次修改回退到第一次修改,那么会删除第二、三次的修改。【注:这里并不是真正的物理删除】
如果发现第二次修改有错误,想要恢复第二次修改,却要保留第三次修改,使用revert命令,其产生了新的commit_id

2.提交到暂存区后(执行git add后)回退:
git reset HEAD <file_name> 命令撤销提交到暂存区的内容,再使用git checkout – <file_name>命令,来清空工作区的修改

3.工作区(执行git add前)回退:来清空工作区的修改

git checkout -- <file_name>

另一篇

1.确定准备回退的分支,例如dev分支;然后切换到dev分支
2.使用日志命令

git log

查看提交记录(因为当前已经切换到dev了,因此查看的是dev的提交记录),找到需要回退到哪次 commit 的位置,记录下 commit 号,例如:

commit 96f6ec9bf41fe0e425f8495d46a52b8f990facd3

注意,回退到这次 commit 的位置,是包括这次 commit 提交的代码的 ;如果不想要这次commit提交的代码,那就回退到再上一次 commit的位置

3.执行回退命令,会把本地代码回退到这次 commit 时的状态(包括这次commit):

git reset --hard 96f6ec9bf41fe0e425f8495d46a52b8f990facd3

4.执行命令,把本地代码强制推送到远程

git push origin dev  --force

说明:

●如果不使用force命令,就无法推送到远程,会冲突。
(当然会冲突,回退代码后本地当前版本与远程版本不一致,例如本地是v0.1,远程是v0.2;如果想让远程也回退成v0.1,只能使用force命令)

●注意,push后,远程的代码提交历史记录就会与本地相同(意思是v0.2版的代码提交记录就没有了;如果v0.2版的提交记录中、还有需要的代码,那就先单独整理出来,然后再执行这个push回退命令)

●origin的意思是,远程的url(.git的网址),这个是之前就配置好的

●dev的意思是,指远程的dev分支

●整个命令的意思是,把本地当前分支的代码强制推送到远程dev分支(忽略冲突,直接覆盖)

我所遇到的场景

微前端,多人开发,我开发的模块B 依赖模块A。但是A模块的代码,有很多缺陷,更新之后,项目变得卡顿,影响到了B模块开发。解决办法就是把A模块的本地代码进行回退,reset。像还原的时候直接拉取就好

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南朝听月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值