git reset

转载 2018年04月17日 19:24:45

Git reset  

  1. 文件从暂存区回退到工作区 2. 版本回退     

    1.1 git reset HEAD filename :回退文件,将文件从暂存区回退到工作区  //也可以使用 git reset filename

         

    1.2 git reset HEAD^ :回退版本,一个^表示一个版本,可以多个,另外也可以使用 git reset HEAD~n这种形式。       

      如果HEAD指针指向的是master分支,那么HEAD还可以换成master,如果知道特定的commit-id,那么还可以直接使用 git reset commit-id 如果不加参数,实际上使用的是默认的参数mixed,

      我们可以使用git log -3来查看最近三次的提交,形如 git log -n ,n就是想要输出的个数,可以看到commit-id,author,date等信息

        

下面介绍三种参数:

        (1) soft 参数:git reset --soft HEAD~1 意为将版本库软回退1个版本,所谓软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区

                      

        (2) 默认的mixed参数:git reset HEAD~1 意为将版本库回退1个版本,将本地版本库的头指针全部重置到指定版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段

                      

 

        (3) hard参数:git reset --hard HEAD~1 意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本                                                             

           了解这三个参数已足够我们日常开发使用了, 注意soft参数与默认参数都不会修改工作区代码,只有hard参数才会修改工作区代码。

    1.3 git reset 配合 git commit 追加提交  

      什么时候会用到追加提交,追加提交有什么优点?

      (1) 对未merge的版本库中的提交不满意,希望修改其中的某些信息,如代码,如提交描述等,可以使用git commit --amend进行追加提交,优点是不会产生新的commit-id 

      (2)   修改方法:如果想修改的不是最新一版的提交,那么可以通过git reset --hard HEAD~n将版本回退到需要的那版,如果想修改代码,那么直接在工作区进行代码修改,

      修改完之后git add到暂存区而不必再git pull,而如果是修改其他信息,那么可以直接使用git commit --amend进行追加提交,git commit --amend命令会打开一个编辑器,可以修改其中的信息,

      如果修改了代码而不修改其他信息,则直接 Ctrl + X离开编辑器,再git push推送到远程服务器,如果也修改了其他信息,那么需要先使用Ctrl + M写入信息,再Ctrl + X离开编辑器,再推送。

    1.4 查看帮助

      git reset -h | git reset --help 

学习无他法,唯有持之以恒

利用ATL制作程序多媒体封面组件

COM的优越就不多说,使用ATL开发COM方便而快捷,并且具有Size小,Dependency少的特点。VC++的import 编译支持更是对COM开发的巨大支持。闲话休说,这就开始吧。  一.Fl...
  • wurong
  • wurong
  • 2000-10-31 13:17:00
  • 423

git reset 小结

git 删除 错误 提交的 commit 方法:          根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:     git r...
  • wh_19910525
  • wh_19910525
  • 2012-04-09 10:41:15
  • 22132

git reset --hard 和 git reset --sort区别

进行了错误的提交,需要撤回一条或几条commit时候,git reset --hard 和 git reset --soft的区别...
  • yangfengjueqi
  • yangfengjueqi
  • 2017-03-12 22:50:52
  • 3920

【转】如何撤销git reset --hard操作

【版权声明】     原文链接为《找回Git中丢失的Commit》 【正文】     在使用Git的过程中,有时候会因为一些误操作,比如reset、rebase、merge等。特别是在Commi...
  • Qidi_Huang
  • Qidi_Huang
  • 2016-12-23 14:53:37
  • 6929

关于 git reset 命令几个常用参数的理解

我们在使用git进行版本管理的时候,如果遇到需要回退代码的情况,一般会用 git reset 命令,不过这个命令还有几个参数,这篇文章就来详解一下。先来了解一下 git 大致的工作流程,配合这张图会比...
  • hbwindy
  • hbwindy
  • 2016-05-27 22:04:53
  • 10608

git reset与git revert比较

git resetgit reset的作用是还原Index的状态或修改本地分支HEAD的位置。这个命令适合用于从某个提交点重新开新的分支。比如,如果某个提交之后的代码我们都不要了,就可以在本地rese...
  • woxueliuyun
  • woxueliuyun
  • 2016-04-11 15:30:20
  • 7880

git reset head、checkout

reset与checkout异同点 可以实现相同的功能,比如还原本地文件,但是reset更强调“撤销”,比如撤销暂存区、撤销暂存区和本地,而checkout更强调“替换”,比如用暂存区内容替换本地,用...
  • wangjun5159
  • wangjun5159
  • 2016-05-13 18:15:42
  • 2593

git reset 、rebase和 revert的区别

git revert 放弃某次提交 git revert 之前的提交仍会保留在git log中,而此次撤销会做为一次新的提交。 git reset 是回滚到某次提交 ...
  • rebeccachong
  • rebeccachong
  • 2014-09-18 22:21:12
  • 8691

Git技巧之git reset使用详解

Git中reset命令是一条很重要的命令,它的主要用途是重置分支引用的指向。 分支引用是什么?分支引用即HEAD所指向的分支。可以在.git/HEAD文件中查看: 工作区中执行:$cat .git/H...
  • u010506504
  • u010506504
  • 2015-02-21 14:17:04
  • 3395

git基础学习(三):版本回退 git reset --hard HEAD^(或者是commit id的前几位)和git reflog

现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system...
  • xiaoshan812613234
  • xiaoshan812613234
  • 2014-04-30 11:51:22
  • 10266
收藏助手
不良信息举报
您举报文章:git reset
举报原因:
原因补充:

(最多只允许输入30个字)