git reset本地常见操作

git reset命令用于将当前分支回退到指定的某个版本。

基本用法

git reset [--hard] commitversion

详解

该命令可以看做commit命令的取反操作,既然可以向前提交,当然也可以向后回滚。可以像事务一样回滚一次到上一次的位置,也可以回滚到指定的位置。这个位置由commitversion决定,每commit一次都会产生一个commitversion值。

1 --hard 选项在帮助文档中的解释是:Resets the index and working tree. Any changes to tracked files in the working tree since <commit> are discarded.

2 commitversion是指定曾经commit的版本,每次commit都会产生唯一一个commitversion,用于标识本次commit。

(1) 那么怎样找到每次commit的commitversion呢?有两个命令都可以达到这个目标:git log 和git reflog

用法分别是:

git log [--pretty=oneline]

git reflog

两者的区别是:git log查看的日志是相对于当前commitversion之前的所有历史日志,git reflog查看的日志是相对于最后一个commitversion之前的所有历史日志。展开来讲就是,一个是相对历史日志,一个是绝对历史日志。假如你已经reset到某个commitversion了,那么这个时候使用git log只能看到这个commitversion之前的历史日志,看不到之后的历史日志了,但是使用git reflog就可以。

(2) git对离当前版本最近的commitversion提供了快捷方式。

在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

比如回退到上一个版本:git reset --hard HEAD^

扩展用法

有时工作空间的工程会由开发工具产生一些最新的文件或目录,这些文件或目录是不纳入git版本管理范围内的,所以对于电脑当前的工作空间,有时使用git reset命令在某些操作系统上不一定能完全回退,需要一个额外的操作帮助git回退,这个命令是:

git clean -dfx

用于强制清洗当前工作区不受git管理的文件或目录,帮助git将当前工作区干净的回退到指定commitversion。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-30 08:23:42

git reset本地常见操作的相关文章

Git分支管理及常见操作

众所周知,使用Git分支,我们可以从开发主线上分离开来,然后在不影响主线的同时继续工作. 既然要使用Git分支,这里就涉及到Git分支的管理及常见操作,如列出分支,分支的创建,分支的删除,分支的合并等操作. 以前看到这就头痛,总是搞不明白,今天研究了许久才搞懂,这里做个笔记. 如,我的Git工具安装在E盘>myGit中,安装后目录如下: 我本地创建的仓库为myProject,首先我们可以先查看下本地仓库的分支情况.打开Git工具,操作如下. [email protected] MINGW64 ~

git常见操作---由简入深

常用命令 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 touch 创建空文件 echo 创建带有内容的文件. cat 查看文件内容 cp 拷贝 mv 移动或重命名 rm 删除文件 -r 递归删除,可删除子目录及文件 -f 强制删除 find 在文件系统中搜索某文件 wc 统计文本中行数.字数.字符数 grep 在文本文件

Git本地基础操作

1.Git简介(安装与配置) 1.Git的安装(http://www.git-scm.com/download/) 2.Git配置[git config] 关于git命令的查询方式: git安装根目录下/doc/index.html可以查询,更方便的方式是在使用git时通过help进行有针对性的调用.(以查询config帮助文档为例具体语法为:git config --help/git help config) pro git参考文档 git的已配置信息都会存储在用户目录(例C:\Users\A

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

参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时Commmit记录也消失了. 此时解决方法是通过git reflog来查看先前记录并恢复: git reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会

恢复 git reset -hard 的误操作

有时候使用Git工作得小心翼翼,特别是涉及到一些高级操作,例如 reset, rebase 和 merge.甚至一些很小的操作,例如删除一个分支,我都担心数据丢失. 不 久之前,我在做一些大动作(rebasing)之前,我总是备份整个版本库,以防万一.直到最近我才发现git的历史记录是不可修改的,也就是说你不能更 改任何已经发生的事情.你做的任何操作都只是在原来的操作上修改.也就是说,即使你删除了一个分支,修改了一个提交,或者强制重置,你仍然可以回滚这些操 作. 让我们来看一些例子: $ git

Git reset 操作及介绍

GIT (分布式版本控制系统) 编辑 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1]  Git的读音为/gt/. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.[2]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在

git reset 操作后回滚

在使用git的过程中,虽然每次reset,rebase的时候你都小心翼翼,但是常在河边走,哪能不湿鞋?冷不丁一天状态不好,reset以后,发现你要的commit都不见了!心急如焚的你该如何处理这样的"突发事件"呢?显然,git是不会让你选择重写代码的.这时候,回滚操作就是你的最后一根救命稻草了! 1. $ git reflog 这条命令,基本上能让你知道你最近做的所有操作了,找到想回滚到哪一步,再执行 $ git reset --hard e0e9999 大功告成,刷新一下你的git界

Git的本地操作--上(不会使github远程仓库发生任何改变)

1.先弄清楚git与github的关系 Git是最流行的分布式版本控制系统:[SVN,CVS这些版本控制系统,是集中式的,集中式的版本控制系统不但速度慢,而且必须联网才能使用.当然,Git的优势不单是不需要联网,Git极其强大的分支管理,也把SVN等抛在了千里之外] GitHub网站为开源项目免费提供Git存储,无数开源项目都托管在GitHub上,包括jQuery,PHP,Ruby等等. 可以简单的理解成: Git是一个管理代码的本地工具软件:github是托管代码的网站平台(可以托管团队里多个

git reset之后找回本地未提交的代码

头脑发热使用了git reset命令回退到了之前的一个版本,结果把本地没有提交的代码给覆盖掉了..... 作为一个bug员自然是想恢复,毕竟重新写还得再测一遍,本着能懒一点是一点的原则,开始了恢复代码的过程,保证以后再也不手贱le..... 首先我用的是eclipse的工具,或者别的工具大部分应该都适用,如果你没有使用工具,请忽略我的这篇文章.... 右击你修改过的文件,应该还能记得吧... Team-->Show Local History 看到一堆的缓存: 找到你reset之前的最近的一个时