【Git】Git-常用命令备忘录(二)

开发过程中,各种问题都会出现,比如手残,眼花,头昏,导致了误操作,那么git作为一款由Linus亲自操刀,替换掉BitMover公司的BitKeeper的优秀源代码管理工具,让您在各种乱七八糟的误操作中,总有后悔药吃,就是git的能力。

了解这种能力之前,首先还是要了解他的几个重要逻辑概念

逻辑概念

1.工作区

就是我们编写代码的区域

2.版本库

2.1 暂存区

git add,实际上就是把要提交的所有修改放到暂存区

2.2 当前分支

git commit一次性把暂存区的所有修改提交到当前分支,提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的

常用操作

1.撤销更改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

# “哎,又有新需求,修改代码”
# “咦,改乱了,这个逻辑好复杂,重新理一下逻辑,重头来过”
$git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD,就回到了场景1,第二步按场景1操作(git checkout -- file)。

# “新需求,修改代码”
# “嗯,对,可以了”
$git add file# “哦,NO,不对,这里不对”
$git reset HEAD
$git checkout --file

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,那就需要版本回退了,不过前提是没有推送到远程库。

# “新需求,修改代码”
# “嗯,对,可以了”
$git add file# 提交代码
$git commit -m "功能完成"# “完了,完了,这里不对,咋办?”
$git log
# 该命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline只写 --onleline也可以,只会显示commit id 的前几个字符
$git log --pretty=oneline
#or
$git log --oneline #只会显示commit id 的前几个字符
#和SVN不一样,Git的commit id不是1,2,3...递增的数字,而是一个SHA1计算出来的数字,用十六进制表示。#【回到过去】
$git reset --hard HEAD^ #回退到上一个版本
$git reset --hard HEAD^^ #回退到上上一个版本#【回到未来】-前提是你git没关,还找到了未来的commit id
$git reset --hard 752f5c2#【不小心关闭了git,时空跳跃的按钮不见了】
$git reflog
#记录你的每一次命令
#找到commit id
  • 回到过去,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 回到未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

2.删除

  • rm file,如果你用rm删除的文件,就相当于只删除了工作区的文件,如果需要恢复,直接使用 git chekout -- file就可以

  • git rm file,如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区,相当于执行了以下两条命令:

    # 删除文件
    rm filegit add -A
    

    需要先 git reset HEAD <file>,然后再git checkout -- <file>

  • git checkout -- file其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以还原

3.参考链接

https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000

https://blog.csdn.net/rongDang/article/details/82823399

https://blog.csdn.net/rongDang/article/details/82853332

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zipsys驱动签名工具_全球首发 300系列主板USB WIN7 64位驱动 SMXDIY

本版为改版驱动&#xff0c;仅供SMXDIY会员学习测试&#xff0c;禁止传播。众所周知&#xff0c;H310/B360/H370/Z390是没USB的WIN7驱动的。网上也找不到相关的资料&#xff0c;大家普遍默认没驱动&#xff0c;但这已经成为历史。我们这发布的是真的驱动&#xff0c;可以整合到…

.NET/C#程序开发中如何更优美地实现失败任务重试的逻辑?

背景在.NET中&#xff0c;异常是指成员没有完成它的名称宣称可以完成的行动。在异常的机制中&#xff0c;异常和某件事情的发生频率无关。有时候需要对一些失败的任务进行多次的重试&#xff0c;如果重试的次数达到我们设定的阀值&#xff0c;则再放弃任务。解决方案使用一个静…

电子商务与计算机科学与技术的相关性,电子商务、计算机科学与技术、法学等相关专业。.doc...

电子商务、计算机科学与技术、法学等相关专业。.doc优先选派专业&#xff1a;金融学、财务管理、经济学、市场营销、电子商务、计算机科学与技术、法学等相关专业。交流学校专业设置情况详见链接&#xff1a; /jwc/jxjh/zyjs.asp1、专业建设概况&#xff1a;学校已形成以经济学…

excel筛选排序从小到大_excel表格怎么按字数的多少来排列!

excel表格怎么按字数的多少来排列为了更好的做好我们的语料编定及翻译工作&#xff0c;尤其是个别语料数量较多&#xff0c;最多可达2000条。我们可以将字数少的&#xff0c;意图明确的&#xff0c;不会有异议的&#xff0c;我们可以根据每句话的字数&#xff0c;用excel来进行…

计算机系统的工作方式,某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲 - 信管网...

第2题&#xff1a;实时操作系统(RTOS)内核与应用程序之间的接口称为( )。A&#xff0e;I&#xff0f;O接口B&#xff0e;PCIC&#xff0e;APID&#xff0e;GUI答案解析与讨论&#xff1a;www.cnitpm.com/st/2867029381.html第3题&#xff1a;嵌入式处理器是嵌入式系统的核心部…

怎么从转移特性曲线上看dibl_「科普向」这篇让你快速搞懂IGBT的静态特性

IGBT的静态特性其实并非难以理解的东西,即便是对于外行人而言。刚接触那会儿&#xff0c;看到转移特性、输出特性之类的就想溜之大吉&#xff0c;加之网上查询的资料一概笼统简单&#xff0c;只描述特性曲线所表示的关系结果&#xff0c;却并不解释曲线为何这里弯曲、那里平直&…

对CORS OPTIONS预检请求的一些思考

前后端分离模大势所趋&#xff0c;跨域问题更是老生常谈。《程序员应对浏览器同源策略的姿势》一文提到三种跨域请求方案&#xff0c;重点讲述了w3c和浏览器厂商推出的CORS规范。同源策略 所谓同源是指域名、协议、端口相同。不同源的浏览器脚本(javascript、ActionScript、ca…

2020计算机单招的大专,2020专科和单招的区别

单招即单招招生是国家授权高职院校独立组织考试录取的一种方式&#xff0c;必须于高考前完成录取。众所周知&#xff0c;单招学校大部分是专科学校&#xff0c;那么&#xff0c;单招和专科有什么区别呢?下面是小编为大家收集的关于2020专科和单招的区别_选择单招有什么好处。希…

前端跨域请求get_前端实现跨域访问

1.ajax方式跨域直接使用jsonp即可dataType : "jsonp",2.使用getJson跨域获取数据$.getJSON("http://api.taobao.com/apitools/ajax_props.do&jsoncallback?",function (data) {alert(data);});执行原理&#xff1a;发送请求时需要传一个callback的回调…

如何在 ASP.NET Core 中使用 NLog 的高级特性

NLog 是一个开源的轻量级日志框架&#xff0c;提供了丰富的日志路由和管理功能&#xff0c;同时 NLog 也是非常容易的去配置和扩展&#xff0c;其实在之前的文章中我已经讨论过了 Nlog&#xff0c;在这篇我准备继续和大家讨论一下 NLog 的更多高级功能。接下来看看如何通过 .co…

计算机模拟分子设计,计算机模拟分子材料.pdf

计算机模拟分子材料.pdf计算机模拟与材料分子设计计算机模拟与材料分子设计CCCCompuomputttterer SiSiSiSimumullllaatititition anon andddd MMMMoollllecuecullllarar DDDDesesiiiigngnDalian Universityof Technology Graduate Course, Lecture 5 2010 AutumnLectureLecture…

python是用来初始化_python的初始化运行了哪些?

下面的3个print一个是在模块下面&#xff0c;一个是函数里面&#xff0c;一个是类名下面(不在方法里面)1、 运行这段代码可以发现第3行和11行可以打印出来。第7行没有打印出来。所以可以放心&#xff0c;函数或者方法里面就算有错误&#xff0c;不调用它是不可能报错的&#xf…

强烈推荐:SiteServer CMS开源免费的企业级CMS系统!

说到CMS&#xff0c;大家都知道织梦、帝国CMS、HPCMS、动易等知名老牌的&#xff01;这些东西也可以拿来就用&#xff0c;上次看到一个个人开源的cms&#xff1a;MCMS。基于SpringBoot 2架构&#xff0c;前端基于vue、element ui。每月28定期更新版本&#xff0c;为开发者提供…

计算机函数公式中怎么合并合并,Excel用函数和公式瞬间实现把表格全部合并到一个表中去...

将多张工作表汇总到一张工作表&#xff0c;这是什么意思呢&#xff1f;可以理解为把表格全部合并到一个表中去&#xff0c;之前使用VBA代码实现&#xff0c;本文将教会大家一种快速的方法&#xff0c;用函数和公式瞬间实现多表合并。例如&#xff1a;有N多个以月份命名的excel工…

permutations python_为什么Python的itertools.permutations包含重复项? (当原始列表重复时)...

为什么Python的itertools.permutations包含重复项&#xff1f; (当原始列表重复时)普遍认为&#xff0c;n个不同符号的列表有n&#xff01; 排列。 但是&#xff0c;当符号不明确时&#xff0c;在math和其他地方最常见的惯例似乎是只计算不同的排列。 因此&#xff0c;列表[1, …

. NET5一出,. NET岗面试普遍喊难,真相是…

.NET高级开发/架构师笔试题TOP101、如何设计一个高并发系统&#xff1f;2、如何实现一个.Net5 IOC框架&#xff1f;3、100W并发4G数据&#xff0c;10W并发400G数据&#xff0c;如何设计Redis存储方式&#xff1f;4、如何实现负载均衡Hash一致性算法&#xff1f;5、DotNetty能够…

计算机所有数据的表示方式都是用,计算机数据表示

1、进制1.1 进制的由来进制&#xff1a;是一种进位的方式。x进制&#xff0c;表示逢x进1。计算机的电子原件的状态&#xff1a;开&#xff0c;关。那么&#xff0c;我们表达数据的时候&#xff0c;也是按照开&#xff0c;关的状态来表示的。如果我们表达数据仅仅使用这两种昨天…

数据库年月日时分秒_数据库基本使用系列(二)

书接上回&#xff0c;上回说到数据库的发展历史&#xff0c;存储引擎以及在库层面的一些操作&#xff0c;这次来讲一下数据库中的一些基本的一些数据格式以及对表的一些操作。数据类型数据库提供的数据类型&#xff0c;包括整数类型、浮点数类型、定点数类型、位类型、日期和时…

C# 9 新特性 —— 增强的模式匹配

C# 9 新特性 —— 增强的模式匹配IntroC# 9 中进一步增强了模式匹配的用法&#xff0c;使得模式匹配更为强大&#xff0c;我们一起来了解一下吧SampleC# 9 中增强了模式匹配的用法&#xff0c;增加了 and/or/not 操作符&#xff0c;而且可以直接判断属性&#xff0c;来看一下下…

arma3自定义服务器,Arma3 生存服架设教程,武装突袭3游戏服务器架设

Arma3 生存服架设教程&#xff0c;武装突袭3游戏服务器架设此教程仅适用于Windows系统&#xff0c;独立服务器或者家用电脑都可以用本教程简单搭设Exile Mod。开服其实很简单, 只要你有足够的耐心&#xff01;1.首先 在你的服务器上打开steam下载ArmA 3 Server (SteamCMD 则使用…