手把手建分支模拟回滚的常见情况介绍(一)

在日常编码过程中,分支之间的合并、回滚、提交、打标签等操作在所难免。如果你还是不知道如何使用 git 工具回滚代码,或者总是担心出错git命令行拉取代码,那你就不确定丢失代码了。这个是很危险的,毕竟丢代码是件大事,因为我会带你亲手搭建分支来模拟回滚的常见情况

介绍

Git(读作/gt/)是一个开源分布式版本控制系统,可以高效、高速地处理小型到大型项目的版本管理。

前言

日常代码回滚和回滚有两种常用的方法。这两个对应不同的情况。我将尝试尽可能简单明了地解释这两个命令可以做什么。仓库的新分支从0开始,构建了两个分支,分别是主分支和开发分支进行仿真。

开始

复位简介

1、 的作用是当您希望提交从历史记录中完全消失时。

2、比如你在分支上提交了3条记录,如果C记录有问题,可以用它回滚到B。

3、这个命令大概率是用在我们主分支的,因为我们上线的分支一般是一个分支然后功能开发从

4、开发完成后,分支会并入其中。如果在上线前发现合并分支有问题,可以回滚合并分支

5、 说白了就是取消这次合并

6、但是有一种情况,在协同开发中大家合并后不能使用强制回滚,因为这样会刷掉其他人的提交记录,此时可以用来操作。下面就来聊聊吧

制作分支模拟环境

1.从自己的git仓库新建一个项目,拉取到本地

2.创建一个index.js,写点东西,然后提交到仓库

3.我们使用终端查看commit,可以看到目前只有一个commit是刚刚提交的

4.我们从分支中签出一个分支并切换到那个分支

5.在分支中添加一段代码,此时develop的commit记录中新增了一条B记录

6.在develop分支添加一段代码

7. 看一下develop分支和master分支的最新提交记录对比,可以看到dev分支领先master分支两次commit

注意这里有问题。合并分支时,有时会发现虽然代码不同,但是合并分支时会提示代码没有更新,因为当前开发分支的提交记录在要合并的目标后面。分支,这是因为reset的滥用,所以reset一定要谨慎使用

操作reset来感受一下

1.我们把分支的代码合并进去,切换到分支执行

2.我们使用check commit记录在master分支中找到B记录,我们要回滚这条。回滚时,我们不需要输入所有的提交。一般来说,前 7 位就足够了。

3.关键是我们用它来回滚。这时候我们查看日志记录,发现最后一条记录不见了。还有一个问题。如果直接使用push,会得到如下提示。

这是因为本地记录在存储库中的代码后面,因为我们的回滚已经落后了,并且这种使用需要使用强制提交

4.此时master分支只剩下A和B的提交记录了。这是一个完整的重置回滚记录。之后,我们就可以继续正常的将develop分支合并到master中了。

还原简介

1、revert 的原理是在当前提交之后添加一个新的提交,以抵消之前提交带来的所有变化。它不会改变过去的历史,因此是首选方式,没有丢失代码的风险

2、revert 可以偏移之前的commit,所以如果要偏移多个,需要执行

3、这个经常在你提交commit的时候使用,发现提交可能有问题,可以使用revert

4、还有一种情况,很多人已经提交了代码,但是如果你想改变之前的提交记录而不影响后面的,你也可以使用revertgit命令行拉取代码,它会把你后面提交的所有记录都放到工作区合并时要小心

让我们模拟环境

1. 切到develop分支,现在这个分支有3条提交记录

2.我们使用rever回滚试试,如果你也在使用vs code,可以在workspace中看到变化,可以在console中提交默认commit

3.查看日志记录,可以看到新增了一条记录,原来的还在

提交记录被标记

1、上线前,我们需要对当前提交记录打上tag,方便代码上线。有问题可以及时回滚

下面介绍一些常用的命令

1.列出所有标签

2.创建一个标签,使用它,我们添加一个,看看

3.查看tag对应的commit信息,比如上线后出现问题,我们可以根据下图中的commit id回滚代码

结束

Git管理工具可以说是我们日常生活中每天都会用到的,所以对于常见问题场景对应的方法一定要牢牢把握,避免遇到时被拉扯。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论