赞
踩
git log
查询历史提交版本,默认显示对应版本的:
当内容较多时,可以使用空格进行翻页,b向上翻页,q退出。
git log --pretty=oneline
简化输出,仅显示当前和之前的版本,以及提交的哈希值和提交的捎带信息。
git log --oneline
简化输出,仅显示当前和之前的版本,以及提交哈希值的前7个字符和提交的捎带信息。
git reflog
简化输出,显示所有的版本,其中HEAD@{step}
表示从当前版本移动至对应版本需要的步数。
注:HEAD是git用来控制版本的指针。
git reset --hard <索引值>
回退至指定索引对应的版本。
HEAD->
所在行表示HEAD指针指向的版本,即当前版本。git reset --hard HEAD^
一个^
表示从当前版本开始回退一个版本,n个^
表示从当前版本开始回退n个版本。
git reset --hard HEAD~n
~n
表示从当前版本开始回退n个版本。
git reset
命令除了--hard
选项,还有--soft
和--mixed
选项。
--soft
:仅仅更新本地仓库,将HEAD指针移动至对应版本。工作区和暂存区的内容没有回退,其中相对于回退版本新增的文件和修改的内容,全部变成未commit的状态,存放在暂存区。
简单来说,就是重置git commit
。
--mixed(默认参数)
:工作区内容不变,将本地仓库和暂存区的内容更新至指定版本。
简单来说,就是重置git add + git commit
。
--hard
:首先将当前版本下没有提交的新增文件和修改内容全部清空,然后将工作区的内容恢复至本地库的对应版本。
简单来说,就是重置工作区 + git add + git commit
。
git diff [文件名]
比较工作区与暂存区中文件的差异。
如果指定文件名,则仅比较指定文件的差异,否则比较当前工作区中的所有文件。
git diff <索引>/HEAD
比较当前工作区和指定版本的文件差异,索引即版本哈希值,若使用HEAD则表示与当前最新的版本之间的差异。
git diff <索引1> <索引2>
比较指定两个版本的文件差异。
文件的删除在Git中也是一种修改操作!
git checkout -- <文件名>
注:git checkout优先利用暂存区中的文件进行恢复,达到撤销修改的目的。如果暂存区为空,则利用本地库进行恢复。
# 先将暂存区的内容恢复成最近一个版本的状态
git reset [--mixed] HEAD <文件名>
# 再利用checkout进行恢复
git checkout -- <文件名>
# 直接利用版本回退进行撤销
git reset --hard HEAD^
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。