git log --oneline 命令可以在一块儿显示做过的改动。

我在change 2时忘了一条,想在change 1后再添加一个语句或一个操作,然后这个状态再提交仍作为change 2.将这个staged改动作为上一个commit中。

将1.py复制了一份重命名为2.py,然后git add 2.py,我如果直接用git commit -m “备注”就不行,可以用 git commit --amend --no-edit

虽然change 2的注释没变,但是前面的指针地址变了,可以看出来。


 从staged状态返回到modified状态:git reset 1.py

--

-----------------------------

另一种情况是我改变代码文档后add 到了staged状态,也commit成unmodified状态了,那我怎样返回到add前改变代码的状态呢?用指针移动啊。

首先看看有几个版本,git log --oneline,发现有三个:

可以用 git reset --hard HEAD来重新回到add之前,这个HEAD就代表了07e8eb5这个指针,回到了初始的commit状态,

然后查看状态:

发现没有任何回应,说明是commit状态(即commit后的unmodified状态)

如果我想回到上一个commit状态,我用 git reset  --hard HEAD^  或git reset --hard HEAD~1 或用git reset --hard 7efe439 ,最后一个是id号码。

如果我现在想回到未来,但是看不到change 2 的id号了,怎么办呢?用 git reflog命令找到所有的id号,然后通过id号回到以前有过的将来。

也可以把指针复制过来,


单个文件回到从前:

git checkout 7efe439 -- 1.py                       7efe439是id号,1.py是要操作的文档。

发现1.py内容变了。

但是2.py还是之前的内容。

checkout还可以在branch分支之间切换。

我现在修改1.py:

执行:

这时发现1.py的change 2还存在,并没有被覆盖,我们仍然可以回到那个过去。不过现在仍处在:

-----------------------------------------------------

reset和checkout的区别:

1.reset是整个目录回到从前的commit,创造另外一个未来,checkout是单个文件回到从前的commit,回到以前的未来。

2.reset回到从前某个时间点,这个时间点将来直到现在时间的变化不会显示在log 中,而checkout仍然显示在log中。

3-具体学习git--reset回到过去的版本(commit间穿梭),checkout单个文件穿梭的更多相关文章

  1. git学习——git命令之创建版本库和版本退回

    原文来至 一.创建版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追 ...

  2. 学习git这一篇就够了!!!

    git命令操作 本地库操作 初始化本地仓库 初始化命令 git init $ work % cd workspace $ workspace % mkdir WebService //创建文件夹 $ ...

  3. 代码回滚:git reset、git checkout和git revert区别和联系

    git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为 ...

  4. git怎么创建本地版本仓库

    git怎么创建本地版本仓库 安装git我就不用说了吧!下载地址:https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-previ ...

  5. git: reset

    git reset --hard:把commit撤销,意思是不仅此次commit提交的文件从本地版本库的状态重置,而且把此次commit的文件也从本地目录中删除 所以如果你执行之后发现,git sta ...

  6. 学习Git过程中常用命令的总结

    复制远程库git clone git@github.com:Hconly/learngit.git在GitHub上,可以任意Fork开源仓库:自己拥有Fork后的仓库的读写权限:可以推送pull re ...

  7. git reset的用法

    git reset三个选项 --mix,--hard,--soft 数据 针对每个选项都是操作这个文件. [root@centos demo]# git init Initialized empty ...

  8. git教程: 创建版本库

    转载:创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻 ...

  9. Git误操作 git reset强制回滚 恢复commit方法

    参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强 ...

随机推荐

  1. f5时间设置

    方法一:NTP(推荐) 注:修改ntp server后大约需要10分钟左右才能同步成功. 查看ntp状态: 方法二:手动修改

  2. 整合使用持久层框架mybatis 使用SqlSessionTemplate模板类与使用映射接口 对比

    spring中整合使用mybatis的用法总结 一:在Spring配置Mybatis 第一步:将mybatis-spring类包添加 到项目的类库中 第二步:编写spring和持久层衔接的xml文件, ...

  3. dev-server.js浅析

    // 检查NodeJS和npm的版本 require('./check-versions')() // 获取配置 var config = require('../config') // 如果Node ...

  4. linux输入命令的时候查看目录的快捷键---菜鸟初学必看

    1.. 当前目录2... 上级目录3.~ home目录4.- 前一个目录5.# cd - 进入上次访问目录6.按两下Tab 查看当前文件夹下的内容7.tab自动补全

  5. 谷歌开发的draco格式文件将obj文件压缩成drc文件后将大大减小文件大小(threejs加载有mtl文件的drc文件)

    问题描述:当前threejs是92版本 但是当前版本还没有能够直接加载带贴图文件的drc格式的loader: 解决办法:先加载mtl文件将obj文件分解(按照mtl文件内材质贴图信息进行分解)再将分解 ...

  6. Android开发之使用GridView+仿微信图片上传功能(附源代码)

    前言:如果转载文章请声明转载自:https://i.cnblogs.com/EditPosts.aspx?postid=7419021  .另外针对有些网站转载本人的文章结果源码链接不对的问题,本人在 ...

  7. (转)EasyUI 分页总结

      最近用到了easyui的分页和搜索栏功能,使用过程中由于运用不熟练导致其间也出现过一些问题,下面做个小结,供大家共同学习.1.首先使用EasyUI 的DataGrid分页,得加载其js类库:< ...

  8. (转)system.badimageformatexception 未能加载文件或程序集

    “/xxxxx”应用程序中的服务器错误. ------------------------------------------------------------------------------- ...

  9. PAT 1036 跟奥巴马一起编程(15)(代码)

    1036 跟奥巴马一起编程(15)(15 分) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014年底,为庆祝"计算机科学教育周& ...

  10. iOS.XcodeUsage

    1. Customizing Xcode File Templates http://blog.highorderbit.com/2009/03/15/customizing-xcode-cocoa- ...