Git reset 常见用法
Git reset
1. 文件从暂存区回退到工作区 2. 版本回退
1.1 git reset HEAD filename :回退文件,将文件从暂存区回退到工作区 //也可以使用 git reset filename

1.2 git reset HEAD^ :回退版本,一个^表示一个版本,可以多个,另外也可以使用 git reset HEAD~n这种形式。
如果HEAD指针指向的是master分支,那么HEAD还可以换成master,如果知道特定的commit-id,那么还可以直接使用 git reset commit-id 如果不加参数,实际上使用的是默认的参数mixed,
我们可以使用git log -3来查看最近三次的提交,形如 git log -n ,n就是想要输出的个数,可以看到commit-id,author,date等信息

下面介绍三种参数:
(1) soft 参数:git reset --soft HEAD~1 意为将版本库软回退1个版本,所谓软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区

(2) 默认的mixed参数:git reset HEAD~1 意为将版本库回退1个版本,将本地版本库的头指针全部重置到指定版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段

(3) hard参数:git reset --hard HEAD~1 意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本 
了解这三个参数已足够我们日常开发使用了, 注意soft参数与默认参数都不会修改工作区代码,只有hard参数才会修改工作区代码。
1.3 git reset 配合 git commit 追加提交
什么时候会用到追加提交,追加提交有什么优点?
(1) 对未merge的版本库中的提交不满意,希望修改其中的某些信息,如代码,如提交描述等,可以使用git commit --amend进行追加提交,优点是不会产生新的commit-id
(2) 修改方法:如果想修改的不是最新一版的提交,那么可以通过git reset --hard HEAD~n将版本回退到需要的那版,如果想修改代码,那么直接在工作区进行代码修改,
修改完之后git add到暂存区而不必再git pull,而如果是修改其他信息,那么可以直接使用git commit --amend进行追加提交,git commit --amend命令会打开一个编辑器,可以修改其中的信息,
如果修改了代码而不修改其他信息,则直接 Ctrl + X离开编辑器,再git push推送到远程服务器,如果也修改了其他信息,那么需要先使用Ctrl + M写入信息,再Ctrl + X离开编辑器,再推送。
1.4 查看帮助
git reset -h | git reset --help
1.5 关于作者
姓名:张坤武
邮件:1498462303@qq.com
Git reset 常见用法的更多相关文章
- Git commit 常见用法
Git commit git commit 主要是将用户通过git add命令添加到暂存区里的改动给提交到本地的版本库,关于版本库的构成可以查看我先前的笔记. 每次提交我们都会在本地版本库生成 ...
- git reset的用法
git reset三个选项 --mix,--hard,--soft 数据 针对每个选项都是操作这个文件. [root@centos demo]# git init Initialized empty ...
- Git push 常见用法
Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,g ...
- Git stash 常见用法
Git stash git stash这个命令可以将当前的工作状态保存到git栈,在需要的时候再恢复 1.1 git stash 保存当前的工作区与暂存区的状态,把当前的工作隐藏起来,等以后需要的时 ...
- Git branch 和 Git checkout常见用法
git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...
- Git diff 常见用法
Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff 比较的是单个仓库的工作区与暂存区的差别,repo diff是对git diff的封装,用来分别显示各个项目 ...
- Git add 常见用法
Git add git add [参数] [--] <路径> //作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用gi ...
- Git branch && Git checkout常见用法
https://www.cnblogs.com/qianqiannian/p/6011404.html git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.G ...
- Git clone 常见用法
二 克隆Git仓库 1.1 从远程仓库中克隆整个代码仓库 mkdir Demo //在当前路径下新建一个文件夹,用来存放将要拉取的整个代码库 cd Demo //进入这个文 ...
随机推荐
- BZOJ4546(原) : 三元组
设$f(x)=\sum_{x|d}p(d)$. 则$ans=\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\mu(i)\mu(j)\mu(k)f(lcm(i,j))f(lcm ...
- 使用ajax和history.pushState无刷新改变页面URL
表现 如果你使用chrome或者firefox等浏览器访问本博客.github.com.plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发 ...
- InterBase数据库迁移到MySQL(说明)
刚刚到公司1周便接到了第一个需求,进过了几天的沟通明白了是从gbk文件中恢复InterBase数据库,然后再将恢复到数据库中的数据导出到远程的MySQL数据库中,拿到需求先分步去看问题了,问题大致可分 ...
- MathType的公式在word中跟文字不对齐
引用http://blog.sina.com.cn/s/blog_4d1f40c00100net8.html 部分Mathtype公式与文档文字没有很好的对齐,而是浮起来了,也就是说Mathtype公 ...
- CF 706B 简单二分,水
1.CF 706B Interesting drink 2.链接:http://codeforces.com/problemset/problem/706/B 3.总结:二分 题意:给出n个数,再给 ...
- 三种线程不安全现象描述(escaped state以及hidden mutable state)
hidden mutable state和escaped state是两种线程不安全问题:两者原因不同,前者主要是由于类成员变量中含有其他对象的引用,而这个引用是immutable的:后者是成员方法的 ...
- Scala命令设置JVM参数的规则
Scala下设置JVM参数简单分析 Scala 启动shell脚本,简化后的scala REPL 启动命令大致如下所示: java -Xmx256M -Xms32M \-Xbootclasspath/ ...
- Daily Scrum 11.2
由于11月1号是周六,小组里人不是很齐,所以Scrum会议暂停一次. 周日大家的工作都已经进入到尾声了,但是由于人员方面出现一些问题,界面方面做的还不到位.鉴于我们还只是完成了一个比较简单的工作,与真 ...
- zk回车事件
private Textbox testTextB; testTextB.addEventListener(Events.ON_OK, new EventListener<Event>() ...
- 链接后加"/"与不加"/"的区别
1.http://www.abc.com/abc2.http://www.abc.com/abc/ 当Web服务器接收到对某个末尾不含斜杠的url请求时,例如“http://www.abc.com/a ...