专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

带你搞懂git回滚代码(实例详解)

来源:小嗨整编  作者:小嗨  发布时间:2024-03-21 07:40
摘要:本篇文章给大家带来了关于git回滚代码的相关知识,git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,希望对大家有帮助。在日常coding的过程中免不了分支之间的合并,回滚、提交、打tag等操作,如果你现...

本篇文章给大家带来了关于git回滚代码的相关知识,git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,希望对大家有帮助。

带你搞懂git回滚代码(实例详解)

在日常coding的过程中免不了分支之间的合并,回滚、提交、打tag等操作,如果你现在还不知道怎么使用git工具回滚代码,或者总是担心出错没有把握怕把代码搞丢,这很危险毕竟代码搞丢是很大的事情小则扣绩效重则多扣点,但是 dont worry,你很幸运能看到这篇文章,当你看完以后就不会在有代码丢失的情况,因为我会带你手把手建分支模拟回滚的常见情况

介绍

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

前言

在日常的代码回滚中常用的有两种方式git revertgit reset来进行回滚,这两种分别对应的不同的情况我尽量简单明了的介绍这两个命令都能做些什么,接下来我会从个人仓库新拉个分支从0开始,建两个分支,分别是主分支master和开发分支develop来进行模拟

reset介绍

1、reset的作用是当你希望提交的commit从历史记录中完全消失就可以用

2、比如你在master分支提交了A-->B-->C提交了三个记录,这个时候如果C记录有问题你想回滚到B就可以用git reset进行

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

4、开发完成之后将分支合并到master,如果在上线之前发现合并的分支用问题可以将develop合并过来的分支进行回滚

5、说白了就是取消develop的本次合并

6、但是有一种情况就是协作开发的时候大家都合并到master之后就不能用reset强行回滚commit因为这样会把其他人的提交记录给冲掉,这时候就可以用revert来进行操作我们在下面说

制造一个分支模拟环境

1.从你自己的git仓库创建一个新项目之后拉到本地

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

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

4.我们从master分支迁出一个develop分支git branch develop,并且切换到该分支 git checkout develop

5.在develop分支新增一段代码,这个时候develop的commit记录就新增了一条B的记录

6.在develop分支接着新增一段代码

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

注意这里有个问题当你进行分支合并的时候,有时候会发现虽然代码不一样但是在进行分支合并的时候就提示代码没有更新,就是因为当前的开发分支的commit记录是落后于要合并的目标分支的,造成这种情况的原因就是reset滥用造成的,所以reset一定要慎用

操作一下reset来感受一下

1.我们将develop分支的代码合并到master,切换到master分支 执行git merge develop

2.我们在master分支使用git log查看commit记录找到B记录,准备回滚这一条,回滚的时候不需要输入全部的commid一般是前7位就够用

3.重点来了我们使用git reset 69fde2c进行回滚,这个时候查看log记录发现最后一条新增c记录没有了,这里还有个问题如果直接使用git push推送会有以下提示。

这是因为本地的记录因为我们的回滚已经落后于仓库的代码了,这个使用需要使用git push \-f进行强制提交

4.这个时候master分支就剩下A和B的commit记录了,到这里就是一次完整的reset回滚记录,之后我们还是可以继续正常把develop分支合并到master的

revert介绍

1、revert的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险

2、revert可以抵消上一个提交,那么如果想要抵消多个需要执行 git revert 倒数第一个commit id 倒数第二个commit

3、这个就常用于当你提交了一次commit之后发现提交的可能有问题就可以用到revert

4、还有一种情景是已经有很多人提交过代码,但是想改之前的某一次commit记录又不想影响后面的也可以使用revert,他会把你后面提交的记录都放到工作区只是合并的时候需要注意一点

我们来模拟一下环境

1.切到develop分支现在该分支有三个commit记录

2.我们使用rever进行回滚试一下git revert 16083ce,如果你也用的是vs code可以看到工作区的变化,并且在控制台可以提交默认的commit

3.看一下log记录,可以看到新增了一个记录Revert 新增C,并且原来的新增C还是在的

commit记录打tag

1、在上线之前我们需要对当前的commit记录打一个tag方便上线的代码有问题可以及时回滚

我们来介绍一下常用的几个命令

1.git tag列出所有的tag列表

2.创建一个tag,使用git tag [name],我们新增一个 git tag 测试4,在使用git tag 查看一下

3.查看tag对应的commit信息,git show [tag名字],举个例子git show 测试1,上线之后如果有问题我们就可以根据 下图的commit id进行代码回滚

结束

git管理工具在我们日常中可以说是天天都在用,所以对于常见的问题场景对应的方法一定要牢牢地掌握免得遇到的时候显得捉襟见肘

推荐学习:《Git教程》

以上就是带你搞懂git回滚代码(实例详解)的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/1151995.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


网络百科
小编:小嗨整编
相关文章相关阅读
  • 我的世界颜色符号怎么打(我的世界颜色符号代码)?

    我的世界颜色符号怎么打(我的世界颜色符号代码)?

    我的世界颜色符号怎么打(我的世界颜色符号代码)?在我的世界游戏中,玩家们可以通过使用颜色符号代码,让聊天或书籍中的文字变得更加丰富多彩。本文将为您详细介绍我的世界颜色符号代码的用法,让您轻松掌握如何打出这些漂亮的颜色。我的世界颜色符号代码我...

  • 我的世界晴天指令代码大全(我的世界晴天指令怎么输)?

    我的世界晴天指令代码大全(我的世界晴天指令怎么输)?

    我的世界晴天指令代码大全(我的世界晴天指令怎么输)?在我的世界中,天气系统为游戏增添了丰富的体验。但有时,你可能希望摆脱阴雨天气,享受阳光明媚的晴天。本文将为你详细介绍我的世界晴天指令代码大全。我的世界晴天指令代码大全在《我的世界》中,晴天...

  • 魔兽世界指令代码大全(魔兽世界指令怎样输入)?

    魔兽世界指令代码大全(魔兽世界指令怎样输入)?

    魔兽世界指令代码大全(魔兽世界指令怎样输入)?魔兽世界拥有丰富的指令代码,可以帮助玩家在游戏中更加便捷地完成任务、调整游戏设置以及实现一些特殊功能。本文将为您详细介绍魔兽世界的指令代码大全以及如何正确输入这些指令。魔兽世界指令代码大全1.基...

  • 魔兽世界字体设置在哪(魔兽世界字体设置方法详解)?

    魔兽世界字体设置在哪(魔兽世界字体设置方法详解)?

    魔兽世界字体设置在哪(魔兽世界字体设置方法详解)?在魔兽世界这款备受喜爱的大型多人在线角色扮演游戏中,玩家们可以通过各种方式来打造属于自己的独特风格,改变字体就是一种简单有效的方法,本文将详细介绍如何在魔兽世界中修改字体,让你的游戏体验更具...

  • 我的世界白天指令代码大全(我的世界白天指令怎么写)?

    我的世界白天指令代码大全(我的世界白天指令怎么写)?

    我的世界白天指令代码大全(我的世界白天指令怎么写)?在我的世界中,想切换到白天的话,输入指令/timeset0,就可以切换成白天了。我的世界白天指令怎么写变成白天指令介绍:1、我的世界变成白天的指令是/timesetday;2、玩家需要进入...

  • 我的世界经验指令怎么弄(我的世界经验指令代码)?

    我的世界经验指令怎么弄(我的世界经验指令代码)?

    我的世界经验指令怎么弄(我的世界经验指令代码)?在我的世界中,指令系统是一个非常重要的功能,通过使用指令,玩家可以轻松地创建和管理游戏世界。我的世界经验指令代码1、单人经验指令:/XP10000myword(你的名字)2、多人经验指令:/x...

  • dnf鬼泣技能详解(dnf鬼泣自带暗属性吗)?

    dnf鬼泣技能详解(dnf鬼泣自带暗属性吗)?

    dnf鬼泣技能详解(dnf鬼泣自带暗属性吗)?“鬼泣”是目前dnf手游中较为全面的一个角色,可做主力输出也可以当辅助职业。自带暗属性伤害,打造成本低,整体操作手感丝滑,范围大爆发的同时兼顾持续输出,相比起狂战士那种“莽夫型”职业,“鬼泣”的...

  • 我的世界精灵宝可梦指令代码大全

    我的世界精灵宝可梦指令代码大全

    我的世界精灵宝可梦指令代码大全1、我的世界新人必备指令/ping输完后出现Ping!时间的间隔就是你和服务器的<延时越久出现延时越高>/register密码#注册账号/login密码#登陆账号/money#查看金钱/sethome#设置自己...

  • 周排行
  • 月排行
  • 年排行

精彩推荐