IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下) -> 正文阅读

[开发工具]Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下)

使用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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:04:10  更:2022-08-06 11:06:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:46:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码