git的回滚与撤销【reset and revert】
git的工作流程-- 3个区域
工作区:我们可以看到的文件内容 在操作 git add 之前的!!
缓存区:是不可见的 已经git add操作,还没git commit -m “”操作
基本工作流程:
工作区编辑 ---> 存储缓存区 ---> 历史版本 ---> 上传github
代码回滚
1、在工作区的代码
git checkout --文件名 丢弃某个文件
git checkout --. 丢弃全部
对之前保存在缓存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。如果你之前压根都没有缓存或commit,那就是回到你上次pull下来的样子了。
2、git add到了缓存区,没有git commit -m
git reset HEAD .
git reset HEAD 文件夹名
仅改变缓存区,并不改变工作区。
3、git commit -m 到本地分支,没有git push 远端
git log 查看提交的版本信息 版本号
git reset --hard 版本号 回到想要的版本
git reset --hard HEAD^ 回到最新一次提交
git reset HEAD^ 此时代码保留,回到git add操作之前(表示需要重新add)
4、git push 把修改提交到了远端仓库
①通过 git reset
git log 查看版本信息 版本号
git reset --hard 版本号
git push origin HEAD --force 强制提交一次 之前错误的提交会删除
②git revert 用新的 commit 回滚之前的 commit
git log 查看版本信息 版本号
git revert 版本号 撤销指定的版本,撤销也会作为一次提交进行保存
git revert 和git reset 区别
git revert是用一次 新的commit 来回滚之前的commit,此次提交之前的commit都会被保留;
git reset是 回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除
撤销
将“本地仓库”的代码还原操作叫做“撤销”!
1、文件修改,没执行git add
git checkout 文件名
git checkout .
2、同时对多个文件 git add,但想提交部分
$ git add *
$ git status
$ git reset HEAD 文件名 取消缓存
3、执行了 git add ,想撤回修改
git reset HEAD 文件名 取消缓存
git checkout 文件名 撤回修改
4、行了多次git commit
操作,想撤销到其中某次Commit
git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
git的回滚与撤销【reset and revert】的更多相关文章
- Git如何回滚代码?
摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...
- git如何回滚当前修改的内容?
git如何回滚当前修改的内容? 1.打开git gui,在工具栏上点击 commit ,选择 Revert Changes, 这里可以回滚单个文件: 2.一键回滚所有修改: 打开git gui,在工 ...
- Git 中的回退操作:reset 和 revert
Git 中回退有 reset 和 revert,这两个的区别就是是否保留更改记录 假设当前的提交情况是:A <- B <- C <- D <- HEAD,如下图: 当前是 D, ...
- git代码回滚:Reset、Checkout、Revert的选择
代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Ho ...
- Git使用小技巧之回滚和撤销
想要获取更多文章可以访问我的博客 - 代码无止境. 日常的开发,我们难免会创建错误的git提交记录,整个时候git给我们提供了两个命令来解决这个问题.一个命令是git reset,另一个是git re ...
- git push之后回滚(撤销)代码
问题描述:首先,先说明一下,为什么会引发这次的话题,是这样的,我做完功能Agit push之后,2个月后需求部门要求不要功能A了,然后需要在没有功能A的基础上开发,怎么办?赶紧回滚代码呀. 然后我用g ...
- git 代码回滚与爬坑 -- reset and revert
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/git_code_roll_back_revert_and_res ...
- git代码回滚的两种选择
回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...
- Git的回滚
Git常用命令: git add . #进行提交 git commit -m v2 #v2版本 cat index.html #查看文件内容已经变化 git log #获取到提交信息 git re ...
随机推荐
- SpringBoot 启动慢的解决办法
项目集成了很多内容,有 700 多个类,IDEA 中启动一次需要 70 秒,非常影响开发效率. 研究问题原因发现有以下几种情况会导致启动速度慢,优化后启动只需 26 秒左右了: 1. 和网卡有关,禁用 ...
- 数据库之postgreSQL入门操作指南
一.增 二.删 三.改 四.查 五.SQL操作表 1.增加列 ALTER TABLE table_name ADD column_name datatype; 2.删除一列 ALTER TABLE t ...
- 多线程之ThreadLocal类
深入研究java.lang.ThreadLocal类 0.前言 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换 ...
- 从.NET看微软的焦虑
节日没事,就像聊聊微软的NET. 1.孩子静悄悄,必定在作妖 截止目前,微软的市值达到1.85万亿美元,按说,这样一个宙斯级的巨无霸应该过的非常舒坦, 但是,和微软市值成鲜明的反差,我们从.NET的发 ...
- SQLite在C#的使用
SQLite在C#的使用 http://www.cnblogs.com/SharkBin/archive/2012/11/03/2752277.html System.Data.SQLite.DLL的 ...
- Hadoop 3.0 EC技术
Hadoop 3.0 EC技术 EC的设计目标 Hadoop默认的3副本方案需要额外的200%的存储空间.和网络IO开销 而一些较低I/O的warn和cold数据,副本数据的访问是比较少的(hot数据 ...
- node os env reader
node os env reader node-os-env-reader.js #!/usr/bin/env node "use strict"; /** * * @author ...
- Apple Watch Series 6 全天候视网膜显示屏和全天候高度计是什么鬼
Apple Watch Series 6 全天候视网膜显示屏和全天候高度计是什么鬼 Apple Watch Series 6 / Apple Watch Series 5 全天候视网膜显示屏 LTPO ...
- PIP & Python packages management
PIP & Python packages management $ python3 --version # OR $ python3 -V # Python 3.7.3 $ pip --ve ...
- 灰度发布 & A/B 测试
灰度发布 & A/B 测试 http://www.woshipm.com/pmd/573429.html 8 https://testerhome.com/topics/15746 scree ...