`

Git版本恢复命令reset

    博客分类:
  • git
阅读更多

reset命令有3种方式:

 

1:git reset –mixed:此为默认方式,不带任何参数的git reset,即是这种方式,它回退到某个版本,只保留源码,回退commit和index信息

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

 

2:git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

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

 

3:git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

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

 

场景试用:

  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.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 

分享到:
评论

相关推荐

    Git权威指南PDF完整版

    7.3 深入了解git reset命令/ 96 第8章 Git 检出/ 99 8.1 HEAD 的重置即检出/ 99 8.2 挽救分离头指针/ 102 8.3 深入了解 git checkout 命令/ 103 第9章 恢复进度/ 105 9.1 继续暂存区未完成的实践/ 105 9.2 使用 git ...

    如何在Git中重置、恢复,返回到以前的状态

    在本文中,我们将带你了解如何去重置、恢复和完全回到以前的状态,做到这些只需要几个简单而优雅的Git命令。我们从Git的reset命令开始。确实,你应该能够认为它就是一个“回滚”——它将你本地环境返回到之前的提交...

    Git原理详解与实操指南.zip

    Git原理详解与实操指南\pdf\01 版本控制系统介绍:为什么要...Git原理详解与实操指南\pdf\13 reset命令:将仓库记录和恢复指定历史位置-专栏. Git原理详解与实操指南\pdf\14 删除过期分支:清理无意义的分支数据-专栏.

    Git撤销使用方法,详细教学

    撤销是指恢复先前的状态或操作,以便回退或取消更改,Git提供了多种方式来进行撤销,撤销对文件的修改、撤销暂存的修改、撤销提交、撤销合并等; 详细教程 1、撤销对已经暂存区的文件的修改 这个命令会将指定文件从...

    分享Git常用7大技巧和命令

    Git 是一个非常强大的工具,它包含丰富的工具用以维护项目,我们在日期工作中会经常用到一些常用命令,本文先为大家介绍下面七个Git常用技巧和命令

    git_cheatsheet:基于Coursera上的Git和GitHub入门课程的Git速查表

    git_cheatsheet 基于Google在Coursera上提供的“ Git和GitHub入门”... Git恢复备忘单 git checkout :有效地用于切换分支git reset :基本上重置仓库,丢弃一些更改。有点难以理解,因此阅读文档中的示例可能会更有用

    breed-mt7620-hiwifi-hc5861.bin

    ssh 登录路由器,运行下面3条命令就可以,不需要通过windows的winscp去下载,再上传。 cd /tmp curl -O -k https://breed.hackpascal.net/breed-mt7620-hiwifi-hc5861.bin mtd -r write /tmp/breed-mt7620-hiwifi...

    SDV502-版本控制系统:版本控制系统

    SDV502版本控制系统版本控制系统樱桃采摘这是一条命令,该命令使指定的Git提交能够由提交参考号选择并附加到当前的master上。 如果提交存在问题,这是回滚提交的有用方法。 第一步-使用git log查看提交哈希 第二步-...

    SN-Sysadmin:Sysadmin的“立即服务”应用程序

    如果由于存在在ServiceNow实例外部编辑的文件而导致无法导入存储库,合并了来自不同修订版本的文件的合并提交或与校验和不匹配的其他数据,则可以使用以下两种方法之一进行恢复: : 删除问题提交: 使用安装的...

    x-appcustom

    如果由于存在在ServiceNow实例外部编辑的文件而导致无法导入存储库,合并了来自不同修订版本的文件的合并提交或与校验和不匹配的其他数据,则可以使用以下两种方法之一进行恢复: : 删除问题提交: 使用安装的...

    GithubLesson

    #不要停止,Git It,Git It#我们了解基本知识: git clone git remote add git pull git push 要查看可用命令: git ... git reset main.js 要将文件恢复为上次提交后的状态,请执行以下操作:

    keep.nvim:恢复已删除的文件使Neovim更加轻松

    rf git reset类的东西),除非拥有交换文件,否则您很难轻易将其取回,但没人希望在其代码库中拥有交换文件,因此keep.nvim可以用于帮助,它会自动将与文件路径关联的文件内容存储到redis中,您可以通过一个简单的...

Global site tag (gtag.js) - Google Analytics