git笔记四
git log --graph --oneline 中的--oneline相当于 --pretty=oneline但是可以显示更短小的id

git reset --hard HEAD^

git reset --hard <commit的sha1值>可以回滚到任何一次commit
回滚后就回不去了
用reflog挽救错误的重置
查看分支日志文件
tail -5 .git/logs/refs/heads/master
git reflog show master | head -5

git reset --hard master@{2} 回到刚才没回滚之前的状态

git log --oneline

git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
如果执行git reset --hard HEAD~1则 删除了commit3,如果发现删除错误了,需要恢复commit3,这个时候就要使用git reflog
git reflog show master | head -5

git reset -q HEAD test.ini
使用版本库中的test.ini文件,替换掉暂存区的
HEAD是当前版本库的引用,也可以用commit的sha1值代替
git reset -- hard <commit>
1 版本库的master引用指向上一次commit
2 替换暂存区,暂存区内容和目录树一致(也就是和版本库一致)
3 替换工作区,工作区的内容变得和暂存区一样
git reset --soft <commit>
1 版本库的master引用指向上一次commit
2 暂存区不变
3 工作区不变
git reset --mixed(默认的。加不加都行) <commit>
1 版本库的master引用指向上一次commit
2 替换暂存区,暂存区内容和目录树一致(也就是和版本库一致)
git reset
1 head指向的目录树重置暂存区,工作区不会受影响 就是说,将版本库的内容替换掉暂存区的内容。
执行的 git add的内容都撤销 ,
git reset head 同上
git reset -- filename 将filename撤出暂存区 暂存区其他文件不变,相当于git add filename的反向操作
git reset HEAD filename 同上
git reset --soft HEAD^
工作区暂存区不变 引用倒退一次。(引用指得就是版本库的head指向的最新commit),当对最新的commit不满意时,撤销
git commit --amend 对最新的提交修补提交说明 相当于执行了下面两条命令
git reset --soft HEAD^
git commit -e -F .git/COMMIT_EDITMSG
git reset HEAD^
工作区不变 但是暂存区会回退到上一次提交之前,引用也回退一次
git reset --mixed HEAD^同上
git reset --hard HEAD^ 撤销最近的提交 引用回退一次,暂存区工作区全部会退一次,上一次提交消失
git笔记四的更多相关文章
- 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取
使用git最常见的场景是 你需要参与到一个项目中,而这个项目的代码,同事已经上传到github或者https://coding.net了. 这时候他会给你一个项目代码的远程仓库链接. 例如: http ...
- 项目管理---git----快速使用git笔记(五)------本地项目代码提交到远程仓库---新建项目
上一篇我们已经知道了怎么从远程仓库获取项目文件代码. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取 git还有一种使用场景是 我本来在电脑里就有一个项目,现在 ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- Git 笔记三 Git的初步使用
Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...
- Git 笔记二-Git安装与初始配置
git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...
- Git 笔记一 Git简介
git 笔记一 什么是版本控制 所谓版本控制就是记录对文件的修改记录,这样以后就能回退到需要的 版本.比如你对一段代码进行了几次修改,有几次修改不想要了,如果 使用了版本控制,就可以回退到未做这些修改 ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
随机推荐
- Android-AndroidStudio Run 'app'安装APK到设备的过程
1.AndroidStudio 点击Run ‘app’. 2.点击Run ‘app’就会将所有.class文件用SDK工具集处理成.dex, 用SDK工具集将图片/资源/布局文件/AndroidMan ...
- Java中String、StringBuffer和StringBuilder之间的区别
String在Java中是字符串常量 例如 String str = "abc"; str = str + 1; System.out.println(str); 结果将是abc1 ...
- onbeforeunload事件
window.onbeforeunload=function(){ return "您正在编辑的博客尚未保存,确定要离开此页吗?"; }; 1.这个事件存在的意义就是防止用户不小心 ...
- 加密--HashPasswordForStoringInConfigFile过时问题
最近公司在对一套代码进行重构,把原本的web form换成mvc. 刚刚好几天打算开始做下登录,登录则必然会涉及到密码加密的问题. 原本打算用旧的加密方法就行了,哪里知道其中的md5加密出现了这样的问 ...
- ORA-01722: 无效数字的解决方法
Select Count(t.Wip_No) As Consignvendnewcreateno_Num From Apps.View_Scm_Wip_Po t Where 1 = 1 And ...
- hihocoder1580 Matrix
题目链接:(vjudge)戳我 从今天开始不咕咕地填坑啦 考虑一般的求最大子矩阵和...我们一般都是DP,或者直接上悬线法递推. 下面附一个DP的代码: #include<iostream> ...
- 二十五、MongoDB 索引 和 explain 的使用
一.索引基础 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快.MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧.创建索引的命 ...
- vector在一个循环里同时删除插入
vector<int> a; a.push_back(10); a.push_back(20); a.push_back(30); a.push_back(40); a.push_back ...
- 【09】循序渐进学 docker:docker swarm
写在前面的话 至此,docker 的基础知识已经了解的差不多了,接下来就来谈谈对于 docker 容器,我们如何来管理它. docker swarm 在学习 docker swarm 之前,得先知道容 ...
- Bitnami WordPress如何让默认URL指向WordPress目录?
Bitnami WordPress下载地址:https://bitnami.com/stack/wordpress/installer ,根据自己操作系统选择对应版本,我是windows server ...