git的回滚与撤销【reset and revert】

摘要:
  2、gitadd到了缓存区,没有gitcommit-mgitresetHEAD.gitresetHEAD文件夹名仅改变缓存区,并不改变工作区。  1、文件修改,没执行gitaddgitcheckout文件名gitcheckout.  2、同时对多个文件gitadd,但想提交部分$gitadd*$gitstatus$gitresetHEAD文件名    取消缓存  3、执行了gitadd,想撤回修改gitresetHEAD文件名     取消缓存gitcheckout文件名      撤回修改  4、行了多次gitcommit操作,想撤销到其中某次Commitgitreset[--hard|soft|mixed|merge|keep][commit|HEAD]

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】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Chrome开发者工具面板 F12 调试大全 转载:https://www.cnblogs.com/ajaxlu/p/11855343.htmlRedHat7 Git 安装使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

koa2静态资源缓存策略

文章原文: https://www.cnblogs.com/yalong/p/15211975.html 缓存对于前端性能优化来说有极大好处,这里总结下目前感觉还不错的缓存策略 一. 静态资源启动gzip压缩 这里不是在server端开启gzip, 而是在 webpack 打包的时候把静态资源进行gzip压缩,大大减轻了服务器压缩gzip的压力,大大减少传...

浏览器缓存知识小结及应用

浏览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可避免的一大问题,所以在产品开发的时候我们总是想办法避免缓存产生,而在产品发布之时又在想策略管理缓存提升网页的访问速度。了解浏览器的缓存命中原理,是开发web应用的基础,本文着眼于此,学习浏览器缓存的相关知识,总结缓存避免和缓存管理的方法,结合具...

ubuntu下git更改默认编辑器

ubuntu下使用git提交代码时,git commit时默认的编辑器是nano,这个编辑器实在是太恶心了,用惯了vim,所以如果修改默认编辑器,可以这样解决: 编辑.git/config,在core这块,加入editor = vim,嗯,这下舒服多了,走路也精神了...

github 在ubuntu 使用--使用

##使用git #创建git 的根目录 mkdir -p ~/git/testing cd ~/git/testing #创建测试文件 touch REAME #初始化该目录 git init #新增文件到git 注意后面的 . 表示当前目录--没有提示信息就是好的提示信息,但没有说明git 也不会返回提示信息 git add . #...

[转] 用ModelSim仿真PLL模块

由于要对FPGA读写SDRAM的工程进行调试,第一步就是验证PLL模块的功能,故结合网上找的一些资料,进行了如下PLL仿真实验。 下面是仿真的全过程 首先,看一下Quartus中的PLL模块: 从上面图中可以看出:我的FPGA输入时钟是20MHZ,该PLL有三个输出,其中 C0:5倍频,100MHZ C1:1倍频,20MHZ C2:5倍频,100M...

git拉取单个目录

有时git库里的东西比较多,我们只希望像SVN一样,只拉取git库的一个目录。 例如:基础代码仓库infra-code_ops有很多基础代码,我们只想拉取仓库里nginx-conf目录的文件。 $ git init infra-code_ops-nginx && cd  infra-code_ops-nginx          //初始...