前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下)

Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下)

原创
作者头像
PHP开发工程师
发布2022-08-01 14:51:31
3990
发布2022-08-01 14:51:31
举报
文章被收录于专栏:thinkphp+vue

使用git作为代码版本管理,早已是现在开发者必备的技能,但是大多数的开发者还是只会最基本的保存,拉去,推送,遇到一些commit管理的问题就束手无策,或者用一些不优雅的方式解决。 下面分享一些在开发工作中实践过的实用命令,这些都能够大大提交工作效率,还能解决不少疑难场景。 revert 描述: 给定一个或多个现有提交,恢复相关提交引入的更改,并记录一些这些更改的新提交,这就要求你的工作树是干净的(没有来自头部的修改)。 将现有的提交还原,恢复提交的内容,并生成一条还原记录。 应用场景: 应用场景:有一天测试突然跟你说,你开发上线的功能有问题,需要马上撤回,否则会影响到系统使用,这时可能会想到用reset回退,可是你看了看分支上最新的提交还要其它同事的代码,用reset会把这部分代码也撤回了,由于情况紧急,又想不到好方法,还是人性的使用reset,然后再让同事把他的代码合一遍(同事听到想打人),于是你的技术形象在同事眼里一落千丈。 命令使用: revert普通提交 学会revert之后,立马就可以拯救这种尴尬的情况 现在master记录如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

revert掉自己提交的commit.

在这里插入图片描述
在这里插入图片描述

因为revert会生成一条新的提交记录,这时会让你编辑提交信息,编辑完后:wq保存退出就好了。

在这里插入图片描述
在这里插入图片描述

再来看下最新的log,生成一条revert记录,虽然自己之前的提交记录还会保留着,但你修改的代码已经被撤回了。 revert合并提交 在git的commit记录里,还有一种类型是合并提交,想要revert合并提交,使用上会有些不一样。

在这里插入图片描述
在这里插入图片描述

现在的master分支里多了条合并提交。

在这里插入图片描述
在这里插入图片描述

使用刚刚同样的revert方法,会发现命令行报错了。 为什么会这样,在官方文档中有接受: 通常无法revert合并,因为您不知道合并的哪一侧应被视为主线,此选项指定的父编号(从1开始),并允许revert反转相对于指定父编号的更改 我的理解是因为合并提交是两条分支的交集节点,而git不知道需要撤销的哪一条分支,需要添加参数-m指定主线分支,保留主线分支的代码,另一条则被撤销。

在这里插入图片描述
在这里插入图片描述

revert合并提交后,再次合并分支会失效 还是上面的场景,在master分支revert合并提交后,然后切到v2.0分支修复好bug,再合并到master分支时,会发现之前被revert的修改内容没有重新合并进来。 因为使用revert后,v2.0分支的commit还是会保留再master分支的记录中,当你再次合并进去时,git判断有相同的commitHash,就忽略了相关的commit需改内容。

在这里插入图片描述
在这里插入图片描述

现在master的记录是这样的

在这里插入图片描述
在这里插入图片描述

再次使用revert,之前被revert的修改内容就又回来了。 reflog 描述: 此命令管理重录中记录的信息 如果说reset –soft时后悔药,那reflog就是强力后悔药,它记录了所有的commit操作记录,便于错误操作后找回记录。 应用场景: 应用场景:某天你眼花,发现自己在其它人分支提交了代码还推到远程分支,这时因为分支只有你的最新提交,就想着使用reset –hard,结果紧张不小心点错了commitHash,reset过头,把同事的commit搞没了。 没办法,reset –hard是强制回退的,找不到commitHash,只能让同事从本地分支再推一次(同事瞬间拳头就硬了,怎么又是你),于是,你的技术形象又一落千丈。 命令使用:

在这里插入图片描述
在这里插入图片描述

分支记录如上,想要reset到b

在这里插入图片描述
在这里插入图片描述

误操作reset过头,b没了,最新的只剩下a

在这里插入图片描述
在这里插入图片描述

这时用git reflog查看历史记录,把错误提交的那次commitHash记下

在这里插入图片描述
在这里插入图片描述

再次reset回去,就会发现b回来了。 设置git短命令 对于我这种喜欢桥命令行而不用图形化工具的爱好者来说,设置短命令可以很好的提高效率,下面介绍两种设置短命令的方式。 方式一:

在这里插入图片描述
在这里插入图片描述

方式二: 打开全局配置文件

在这里插入图片描述
在这里插入图片描述

写入内容

在这里插入图片描述
在这里插入图片描述

使用

在这里插入图片描述
在这里插入图片描述

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27 提取码: yu27 百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

开源地址

码云地址: http://github.crmeb.net/u/defu

Github 地址: http://github.crmeb.net/u/defu

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开源地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档