git add 回滚_Git的reset命令详解
git reset 这个命令是版本控制的精髓,非常实用且常用,真香警告!
一、为什么
我们玩闯关游戏的时候,经常要把游戏进度保存,以便我们随时能够回到那一刻。特别是打BOSS之前,做好保存,发现打不过就马上重来。或者一年半载后,重玩游戏,就可以选择一个保存节点开始游戏,可以随时切换。
我们每一次保存,软件就给当时的游戏场景拍一个全景照片,记录好当下的各种参数。我们选择回溯一个保存节点时,就像是选择从一个全景照片中重新开始。
这便是版本控制的精髓---给你更多条命、更多重来的机会。
二、是什么
git reset 命令是在更改git指针HEAD的指向,具体是更改指向不同的版本号,而不同的版本号就是我们玩游戏时不同时间点的暂存记录。如下图---
三、怎么用
要想用好reset命令,必须深入理解它的三个参数---
--soft,--mixed(默认),--hard
看图说话。
1、--soft参数
git reset --soft
如上图,soft参数是指将本地仓回滚到Y版本,但是暂存区和工作区保持不变。此时本地仓回滚到Y版本号commit完成的那一刻。
2、--mixed参数
git reset --mixed 或者 git reset
这是默认参数。表示本地仓和暂存区,都回滚到Y版本号。工作区代码不受影响。
3、--hard参数
本地仓、暂存区、工作区,三区都回滚。
切记!!!工作区有未提交的代码时不要用这个命令,因为工作区会回滚,你没有提交的代码就再也找不回了。
此时如何安全回滚,请参考我的上一篇文章的git stash命令。
思来享趣:理解Git的这两件事情,就可以在Git里为所欲为zhuanlan.zhihu.com
四、使用场景
具体使用的时候,要分清的就是用哪个参数最合适,下面举几个例子。再次提醒,工作区有未提交的改动时,不要用--hard参数。
1、如何撤销一次push?
此时用--soft参数比较合适,只回滚本地仓到上一个版本,然后通过git push -f命令,撤销上次的push,最后更改好代码后重新push。步骤如下---
依次为git reset --soft HEAD~1 // 将本地仓回滚到上一个版本号
git push origin master -f // 通过-f命令,将回滚后的版本号强制推送上去,相当于撤销了最新的push
// 修改代码
// 修改好后,重新add,commit,push即可。
2、如何撤销一次commit?
如果你要同时撤销暂存区的话,就用--mixed参数,如果要撤销工作区的修改就用--hard参数,否则用--soft最安全。
git reset --hard HEAD~1 // 慎用--hard参数,除非你知道你自己在做什么
五、组合拳
聪明的你,一定想到了,想要利用好git强大的版本控制功能,要学会使用组合拳,如以下命令---
git stash // 暂存代码
git reset --参数 版本号
git push --force 等等
这就需要你多多练习了,不过好在git足够强大,只要你稍微注意一点,不会出现找不回代码的情况,因此可以放心大胆地随意尝试。
git add 回滚_Git的reset命令详解相关推荐
- git reset 命令详解(一)—— Git 学习笔记 07
git reset 命令详解(一) 简而言之,git reset 命令是用来将当前 branch 重置到另外一个 commit 的,这个动作可能同时影响到 index 以及 work director ...
- git reset 命令详解(二)—— Git 学习笔记 08
git reset 命令详解(二) 上一篇博文git reset 命令详解(一)讲了 git reset 命令的基本原理和用法,这篇博文谈一谈 git reset 的另一种用法--后面跟一个路径(或文 ...
- git reset 命令详解 git revert命令详解。
git reset 命令详解 reset命令 介绍 参数 补救 git revert命令 revert说明 举例: 命令 reset命令 介绍 git reset 命令格式为: git reset [ ...
- git连接远程仓库码云及命令详解
git连接远程仓库码云及命令详解 1.前言 2.码云远程仓库(github同理) 1.注册码云账号 2.新建仓库 3.git工具的安装配置 1.git 工具下载配置 2.SHH公钥配对 4.创建 gi ...
- oracle回滚断查询,Oracle回滚段使用查询代码详解
大批量执行DML语句造成回滚段大量占用,又回退操作,如何直观查询数据回滚情况? 单机环境 查询回滚执行进度 sql;"> select /*+ rule */s.sid,r.name ...
- git 代码回滚_git代码版本管理(1)——git版本回滚
git代码版本管理(1)--git版本回滚 1.问题背景 在利用github.gitlab.Gitee等代码管理器中对代码的管理,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提 ...
- git reset命令详解
开门见山,先抛出一张图,之后再细讲. 首先,先解释下图中的一些名词. 一.名词解释 1. Working Copy:当前工作目录下的文件,一般指,有修改,没有git add,没有git commi ...
- Git在项目中40个常用命令详解
前言 git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便.但找工作面试和一些需彰显个人实力的 ...
- 【莫队/树上莫队/回滚莫队】原理详解及例题:小B的询问(普通莫队),Count on a tree II(树上莫队),kangaroos(回滚莫队)
文章目录 问题引入 介绍莫队算法及其实现过程 时间复杂度 莫队算法适用范围 莫队奇偶优化 普通莫队:小B的询问 树上莫队:SP10707 COT2 - Count on a tree II 回滚莫队: ...
最新文章
- python操作hdfs_python 操作hdfs
- spark性能优化 -- spark工作原理
- 批处理引擎MapReduce程序设计
- 20-190-092-安装-Flink集群安装 flink-1.9.0 On Yarn
- python哪些系统可以运行_python可以检测它在哪个操作系统下运行吗?
- 实现Trie(前缀树)
- 请问!退休年龄到了,社保没交够,现在职,公司还可以继续交吗?
- java中转为整形的编码_java中Unicode编码转化为中文
- 解决文件夹无限嵌套无法删除的问题---最新办法
- Python Tricks(十五)—— repeat(字符串重复)
- 64位Oracle 11g 使用PL/SQL
- 【附PDF下载】2021年上半年信息系统项目管理师上午综合知识真题
- tsp问题动态规划python_TSP问题——动态规划
- jclasslib插件_JClassLib
- JN5169 ZigBee 3.0 协议栈之 ZigBee 网络参数
- 13 Python函数进阶
- 共享硬盘没有权限访问计算机,win7系统访问磁盘共享没有权限的解决方法
- 液晶LCD广告机是什么,主要用途有哪些。广告一体机的种类有哪些。
- 计算机中专实训方案,中职学校计算机专业实训模式初探
- 定位决定地位,眼界决定境界
热门文章
- Pythonic版冒泡排序和快速排序(附:直接插入排序)
- 苹果文档 UISearchController的介绍
- 大数相乘、大数相加、大数相减Java版本
- thinkJava@第五章@隐藏实施过程
- 通俗理解 Kubernetes 中的服务,搞懂后真“有趣”
- 火遍全国的网络热梗“yyds”,创造者被判刑3年
- 全面解析微服务系统监控分层,啃透服务治理核心!
- 简直骚操作,ThreadLocal还能当缓存用
- 企业级自动化运维方案设计及Saltstack、Ansible等5种工具比较分析--云平台技术栈08...
- 阿里某员工面试华为后吐槽:面试官太水,反问几句都答不上来