git reset --hard和git revert命令

git reset --hard和git revert命令

git误操作时可以用git reset –hard 去撤销这次修改,

但是这样做也有问题,可能在之前本地有没有提交的修改也都消失了,这种情况下,可以尝试git revert命令。

一 git reset的使用

reset是指将当前head的内容重置,不会留任何痕迹。

Sets the current head to the specified commit and optionally resets the index and working tree to match.

git reset --hard HEAD~3            //会将最新的3次提交全部重置,就像没有提交过一样

reset命令的--sof,--mixed,--hard 参数,会对working tree和index和HEAD进行重置

二 git revert的使用

revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存(这样就不会丢失原来修改过,但是没有提交的内容)

git revert HEAD                  撤销前一次 commit

git revert HEAD^               撤销前前一次 commit

git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
时间: 2024-08-02 07:01:51

git reset --hard和git revert命令的相关文章

超级有用的git reset --hard和git revert命令

很多时候,git新手容易误操作,比如,在levelIISZ-1.4.dev分支下,运行了git pull idc cpp-1.0的结果,这样做麻烦很大,经常导致maven项目格式不正确,这个时候,可以用git reset --hard 去撤销这次修改 但是这样做也有问题,可能之前本地的,没有提交的修改,都消失了.可以尝试git revert命令 reset是指将当前head的内容重置,不会留任何痕迹. Sets the current head to the specified commit a

Git reset head revert 回滚

Overview 涉及Git一些日常操作 :) 基础知识 <Pro Git>至少了解branch,commit的概念,及基本的原理 Git常用魔法 存档:master代码回滚方法 我是QA,我用Git Git 工作区.暂存区和版本库 Overview 暂存区(stage, index)是 Git 最重要的概念之一 工作区: 你的目录下面的文件们 暂存区: 由.git/index保存引用,.git/object保存对象的区域 版本库: 仓库 Relations Why stage before

Git 相关问题分享,git reset与git revert的区别?

1.如果我在git add 后想要撤销操作,该怎么做? 使用 git rm --cache [文件名/ *]或者 git reset HEAD, 为什么这个命令也会有效果呢,实际上reset将 HEAD指针指向的提交复制到了暂存区,所以看起来暂存区像是没有东西. 这里可以扩展一下:Git 分为三颗“树”: 当我们在工作区修改了时,git add 命令会将文件复制到暂存区,git commit 之后会将index中的内容保存为一个永久的快照.然后创建一个指向该快照的提交对象,最后更新master分

git reset命令

git reset有两种用法,一种用法在命令中包含路径<paths>,这种方法不会改变引用,也不会改变工作区,而是用指定提交状态下的文件替换掉暂存区的文件,相当于取消之前git add操作. 第二种方法,不使用路径<paths>则会重置引用. 命令格式为:git reset [--soft | --mixed | --hard] [<commit>] 参数--soft  只更改引用的指向,不更改缓存区和工作区 参数--mixed或不使用参数 既更改引用也重置缓存区 但是

【Git 学习】深入理解git reset 命令

重置命令(git reset)是Git 最常用的命令之一,也是最危险最容易误用的命令.来看看git reset命令用法. ----------------------------------------------------------------------------------------------------------- 用法一:git reset [-q]  [<commit>] [--] <paths>..... 用法二:git reset [--soft | -

[转] git reset简介

http://blog.csdn.net/hudashi/article/details/7664464 http://guibin.iteye.com/blog/1014369 http://hi.baidu.com/tiger_tnt/blog/item/a0464ffa6a8115d9b58f314d.html http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-reset.html 一

git reset and git checkout

git reset --hard <commit>: 1.替换引用的指向.引用指向新的提交ID; 2.替换暂存区.替换后,暂存区的内容和引用指向的文件夹树一致; 3.替换工作区.替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的文件夹树内容同样. git reset --soft <commit>: 1.替换引用的指向.引用指向新的提交ID. 即仅仅更改引用的指向,不该编暂存区和工作区. git reset --mixed <commit>或git reset

恢复 git reset -hard 的误操作

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

Git命令之回退篇 git revert git reset

Git command之回退篇 欲练回退 必先了解:HEAD.index.WorkingCopy HEAD: 当前所在的分支版本顶端的别名,也就是最新的一次commit. git commit 之后与HEAD一致 index: staging area,git add 之后放入该区域 WorkingCopy: 当前修改等操作所在区域,没有 git add 和 git commit 操作 git reset HEAD --file (单个文件) 可与git checkout --file配合 回退