
在日常编码过程中,分支之间的合并、回滚、提交、打标签等操作在所难免。如果你还是不知道如何使用 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管理工具可以说是我们日常生活中每天都会用到的,所以对于常见问题场景对应的方法一定要牢牢把握,避免遇到时被拉扯。
请登录后发表评论
注册
社交帐号登录