git 笔记记录(五) git重置
来源:互联网 发布:android 布局优化 编辑:程序博客网 时间:2024/05/19 03:22
用 git reset hard命令后,所有的提交都被回到了从前,包括代码库中的记录都回到了过去。默认非裸版本库(带有工作区)都提供分支日志功能,因为默认工作区版本库有以下设置
git config core.logallrefupdates true
master记录了分支的变迁,最新的改变追加到文件的末尾
tail -5 .git/logs/refs/heads/master
15c643c 66ae14e bluceshang <1323506213@qq.com> 1384945487 +0800commit: modify welcome
66ae14 d7b6764 bluceshang <1323506213@qq.com> 1384946981 +0800commit: add file
d7b676 0d61bf3 bluceshang <1323506213@qq.com> 1385028943 +0800commit: does master follow this new commit?
0d61bf d7b6764 bluceshang <1323506213@qq.com> 1385029011 +0800reset: moving to HEAD^
d7b67 0d61bf35 bluceshang <1323506213@qq.com> 1385029091 +0800reset: moving to 0d61bf3
git reflog命令对这个文件进行操作,使用show命令显示此文件内容
git reflog show master | head -5
0d61bf3 master@{0}: reset: moving to 0d61bf3
d7b6764 master@{1}: reset: moving to HEAD^
0d61bf3 master@{2}: commit: does master follow this new commit?
d7b6764 master@{3}: commit: add file
66ae14e master@{4}: commit: modify welcome
查看git reflog的输出与直接查看日志文件的不同在于显示顺序不同,即最新改变放在最前面显示,而且只显示每次改变的最终的SHA1值,最大的区别在于git reflog命令的输出中还提供了一个方便记忆的表达式:<refname>@{<n>}.含义是引用<refname>之前第<n>次改变时的SHA1值
重置回两次改变前的值
git reset --hard master@{2}
命令格式:git reset[--soft | --mixed | --hard] [<commit>]
1.使用参数--hard 如:git reset --hard <commit>
会执行上面的全部动作,动作1替换引用的指向,引用指向新的提交ID
动作2替换暂存区,替换后,暂存区的内容和引用指向的目录树一致
动作3替换工作区,替换后,工作区的内容变得和暂存区一致,也和HEAD报指向的目录树内容相同.
2.使用--soft 如git reset --soft <commit> 执行上图中的动作1.即只改引用的指向,不改变暂存区与工作区.
3.使用--mixed或不使用参数,如git reset <commit>
会执行上图中动作1和动作2,即更改引用的指向及重置暂存区,但是不改变工作区.
4.git reset -- filename 仅将文件filename的发动撤出暂存区,暂存区中其它文件不改变,相当于git add filename的反向操作.也相当于git reset HEAD filename命令
5.git reset --soft HEAD^ 工作区与暂存区都不改变,但是引用会回退一次,当对最新提交说明或提交的更改不满意时,撤销最新的提交以便重新提交.
git commit --amend -m "description" 相当于下面2个命令
git reset --soft HEAD^
git commit -e -F .git/COMMIT_EDITMSG
6. git reset HEAD^工作区不改变,但是暂存区会回退到上一次提交之前. 相当于git reset --mixed HEAD^
7.git reset --hard HEAD^彻底撤消最近的提交,引用回退到前一次,而且工作区与暂存区都会回退到上一次提交状态,上一次提交全部丢失.
- git 笔记记录(五) git重置
- Git学习笔记(五) Git重置
- Git学习笔记(五) Git重置
- git学习笔记-6 git reset(重置)
- Git:Git重置(git reset)
- git重置(git权威指南笔记)
- git 笔记记录(四) git对象
- git 笔记记录(六) git检出
- git 笔记记录(七) git Clone
- git 笔记记录(九) git里程碑
- git重置
- git重置
- git 笔记记录(一)
- git 笔记记录(七) git基本操作
- git 工作笔记(自己常用的 git 命令记录)
- Git学习笔记(五)---修改管理
- git 笔记记录(二) 初始化
- git 笔记记录(三) 暂存区
- Spring 3.0 引文注入详解
- UIButton事件
- 李炎恢jQuery笔记5基础DOM和CSS操作
- 2013.11.20
- 李炎恢jQuery笔记6 DOM节点操作
- git 笔记记录(五) git重置
- 快速排序
- 李炎恢jQuery笔记7表单选择器
- DbVisualizer Personal 8.0.9 中文乱码问题的解决方法
- 李炎恢JQUERY笔记\第8章 基础事件
- 实战 SQL Server 2008 数据库误删除数据的恢复
- 八连块
- 公钥,私钥和数字签名这样最好理解
- 李炎恢JQUERY笔记\第9章 事件对象