git的工作流程-- 3个区域

  工作区:我们可以看到的文件内容  在操作 git add 之前的!!

  缓存区:是不可见的   已经git add操作,还没git commit -m “”操作

  历史区:将缓存区中,临时存储的文件,生成历史版本   已经git commit -m

  基本工作流程:

    工作区编辑 ---> 存储缓存区 ---> 历史版本 ---> 上传github

         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】的更多相关文章

  1. Git如何回滚代码?

    摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...

  2. git如何回滚当前修改的内容?

    git如何回滚当前修改的内容? 1.打开git gui,在工具栏上点击 commit ,选择 Revert Changes,  这里可以回滚单个文件: 2.一键回滚所有修改: 打开git gui,在工 ...

  3. Git 中的回退操作:reset 和 revert

    Git 中回退有 reset 和 revert,这两个的区别就是是否保留更改记录 假设当前的提交情况是:A <- B <- C <- D <- HEAD,如下图: 当前是 D, ...

  4. git代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Ho ...

  5. Git使用小技巧之回滚和撤销

    想要获取更多文章可以访问我的博客 - 代码无止境. 日常的开发,我们难免会创建错误的git提交记录,整个时候git给我们提供了两个命令来解决这个问题.一个命令是git reset,另一个是git re ...

  6. git push之后回滚(撤销)代码

    问题描述:首先,先说明一下,为什么会引发这次的话题,是这样的,我做完功能Agit push之后,2个月后需求部门要求不要功能A了,然后需要在没有功能A的基础上开发,怎么办?赶紧回滚代码呀. 然后我用g ...

  7. git 代码回滚与爬坑 -- reset and revert

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/git_code_roll_back_revert_and_res ...

  8. git代码回滚的两种选择

    回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...

  9. Git的回滚

    Git常用命令: git add .   #进行提交 git commit -m v2 #v2版本 cat index.html #查看文件内容已经变化 git log #获取到提交信息 git re ...

随机推荐

  1. transformers---FloatProgress not found. Please update jupyter and ipywidgets.

    问题 运行 huggingface transformers 的 demo,报错FloatProgress not found.具体如下: import torch from transformers ...

  2. InstallShield 2013 Limited Edition for Visual Studio

    新建打包项目后,解决方案资源管理器中的结构如下: Project Assistant界面如下: 在Project Assistant中按照步骤创建打包项目: 1.Application Informa ...

  3. MAC地址分类

    网卡MAC地址作为互联网设备在以太网中身份的唯一标识在以太网通讯中的作用比IP地址还要重要,MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique i ...

  4. 大数据开发--Hbase协处理器案例

    大数据开发--Hbase协处理器案例 1. 需求描述 在社交网站,社交APP上会存储有大量的用户数据以及用户之间的关系数据,比如A用户的好友列表会展示出他所有的好友,现有一张Hbase表,存储就是当前 ...

  5. 使用Benchmark.NET测试代码性能

    今天,我们将研究如何使用Benchmark.Net来测试代码性能.借助基准测试,我们可以创建基准来验证所做的更改是否按预期工作并且不会导致性能下降. 并非每个项目都需要进行基准测试,但是如果您正在开发 ...

  6. C# 6.0 Features , C# 7.0 Features

    1 1 1 C# 6.0 Features http://stackoverflow.com/documentation/c%23/24/c-sharp-6-0-features#t=20160828 ...

  7. Android 获取apk的URL Schemes

    1. 下载apk到你的PC上 2. 反向工程Android APK文件的工具 Apktool 3. 查看"AndroidManifest.xml"文件 See alse: http ...

  8. NGK:APP一站式挖矿高收益项目

    NGK是10月中旬刚上线的公链项目,采用手机挖矿形式.NGK数字增益平台,200美金即可入场,收益可观,分为静态和动态两种,投资算力收益超高.邀请好友挖矿还有额外的返佣. NGK立志为所有人创造无差别 ...

  9. [Python学习笔记]文件的读取写入

    文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...

  10. JDBC 连接Oracle数据库 各个对象的理解

    JDBC: 1. **代码实现:(连接oracle数据库) ​    1.导入驱动jar包 ​    2.注册驱动 ​     Class.forName("oracle.jdbc.driv ...