首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于git的reset指令说明-soft、mixed、hard

在开发过程中,git的版本管理越来越普及。在版本管理中,最常用和最重要的是重置提交的版本,恢复后悔做了的事。大家都知道用reset命令。但是有几种形态需要整理共享一下,也方便我自己查阅。...二、reset soft(更改HEAD)(恢复git commit的操作) 软重置。...本来origin的HEAD和本地的HEAD一样,如果你指定--soft参数,Git只是单纯的把本地HEAD更改到你指定的版本那么,整个过程中,就HEAD的定义发生了变化,其他像Working Copy...3.mixed(default)(恢复git add的操作,包含恢复git commit的操作) --mixed是reset的默认参数,也就是当你不指定任何参数时的参数。...1、soft: 重置git commit 2、mixed: 重置git commit 和 git add 3、hard: 重置git commit 和 git add 和工作副本的修改。

3.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git面试常见问题

    命令行 SourceTree SmartGit git add 和git stage有什么区别 Git仓库的三个组成部分:工作区(Working Directory)、暂存区(Stage)、历史记录区(...基于这个原因,我们建议使用 git stage 以及 git diff --staged。 git reset 、git revert和git checkout 有什么区别?...用来标记reset指令的影响范围。 --mixed:会影响到暂存区和历史记录区。也是默认选项。 --soft:只影响历史记录区。 --hard:影响工作区,暂存区和历史记录区。...git revert和git reset的目的是一样的,但是做法不一样,它会创建新的commit的方式来撤销commit,这样能保留之前的 commit 历史,比较安全。...然后从文件的层面来说: git reset 只是把文件从历史记录区拿到暂存区,不影响工作区的内容,而且不支持 --mixed、--soft 和 --hard。

    1K50

    git回退代码的n种方式

    暂存区:你使用git add添加之后的文件所在位置 git reset git reset commitId --soft:回退当前代码仓库到指定提交commitId,当前HEAD和commitId之间的修改会保留...就是保留了add的状态 git reset commitId --hard:回退当前代码仓库的代码到指定commitId,这之间的代码会丢失。...如果要保留add的状态,就执行 git reset --mixed 如果不想保留add的状态,但是想保留修改。...git reset --hard HEAD^ 本地修改,执行了git add和git commit,并且执行了git push,但是此时其他人还未提交代码到同一分支。想撤回。...# 根据你是否想要保留修改代码,自由选择 --soft --mixed --hard git reset --soft HEAD^; # 执行要做的修改等操作,重新提交,或者丢弃代码 git push

    43721

    Git回滚和撤销---吃上后悔药、坐上时光机

    //删除暂存区中的文件记录 git rm --cached 文件名 //或是下面的命令,推荐用下面这种 git reset HEAD 文件名 上面2种方法有什么区别呢?...只不过有个问题,暂存区中的内容和工作区中的内容要不要跟着改呢?...Git可以让我们自己选——分别对应reset 的3个参数:mixed、soft和hard mixed:这个是默认值,效果是暂存区的内容会被替换,工作区的内容不变(也就是撤销commit,同时撤销add,...需要重新add操作); soft:效果是暂存区和工作区的内容都不会变,也就是不撤销 add 操作; hard:这个效果是暂存区的内容会被替换,工作区之前被跟踪的文件内容会被替换 //回滚到上一次提交 git...reset --hard HEAD^ //或者 git reset HEAD^ --hard PS:如果只是想修改刚刚commit时写的提交备注,不用 reset,可以用下面的命令: //修改最新一次提交的说明信息

    62120

    Git reset爬坑记

    在commit后,如果想修改一般有reset和revert两种方法 其中reset适用于未push的情况,可以直接回溯到特定的节点 而revert相当于将目标的节点放到末尾进行了一次提交,适用于已push...git reset target # target可以为节点相对指针 如HEAD~1、也可以为节点commit的ID。...同时,reset不仅可以指向前面的节点也可以指向到后面的节点,如不小心reset到了C1,可以使用git reflog查看log,然后使用 git reset C3跳转回C3 ---- reset后可以加参数...如:--mixed --soft --hard param effect mixed(默认) 会保留提交的源码改动,只是将索引信息回退到了某一个版本,如果还需要继续提交,再次执行git add和git...commit soft 操作是软重置,只撤销了git commit操作,保留了git add操作 hard 工作区改变 返回到未提交也未add的时候,是具有破坏性,是很危险的操作,它很容易导致数据丢失

    46410

    Git命令集之九——重置命令 原

    Git命令集之九——重置命令 1.git reset HEAD^     返回到上一个版本状态,需要注意,这个命令不会修改本地文件的内容,这些新的内容会变为未更新到缓存区的状态。...注意:git在进行reset操作时,是可以设置操作模式的,常用的模式有hard,soft,mixed3种。如果不进行设置,默认都是mixed模式的,上面的列出的reset命令都是工作在这个模式下的。...5.git reset --mixed     mixed模式是默认的模式,不指定的话也是这个模式。...6.git reset --hard     hard模式会将Git当前游标指针重置到指定提交同时将本地文件也恢复到游标所在的提交时的状态。新的文件修改将被丢弃。...7.git reset --soft     soft模式将Git游标指针重置到指定的提交,不修改本地文件状态,但是也不修改缓存区状态,所有的更改将默认作为下次commit的内容。

    44910

    Git 版本退回commit

    先用git log查看一下节点版本号commit_id $ git log 再用git reset退回 $ git reset -soft commit_id #回退到上一个 提交的节点 代码还是原来你修改的...$ git reset –hard commit_id #回退到上一个commit节点, 代码也发生了改变,变成上一次的 根据–soft –mixed –hard,会对working tree和...index和HEAD进行重置: git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git reset...–soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。...如果还要提交,直接commit即可 git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

    3.2K30

    IDEA中Git版本回退终极指南:Reset与Revert双方案详解

    IntelliJ IDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择困惑。本文将解析Reset与Revert两种方案的操作细节及避坑指南。...1.3.2、Mixed 选择Mixed回退后,所有文件内容没变化(与Soft一样),只是将暂存区Test3移除到工作区,这样看来Soft和Mixed的区别就是清空暂存区。...1.3.3、Hard(慎用) 选择Hard回退后,文件内容被还原为第一次提交的状态(Test1第二三提交内容和Test3没提交的内容丢失了),然后暂存区的整个文件Test3丢失(没有像Soft和Mixed...reset --hard 62b47d9 # 回退到上一个提交(保留工作区修改) git reset --soft HEAD\~1 # 回退到前2个版本(保留工作区,暂存区重置) git...62b47d9 # 推送当前分支到远程仓库 git push origin 分支 总结 Git版本回退有两种主要方案:Reset通过移动HEAD指针直接回退,适用于本地或强制同步远程,Revert

    5.2K10

    Git 回退代码的两种方法对比

    HEAD^2 如果有git客户端软件,比如smartgit,可以直接在ui界面操作 然后再提交上去,重新生成一次撤回记录 git reset 操作 git reset :reset,重置操作...,是重置HEAD的位置,将代码重置到某个版本,某个版本之后的提交都会被清掉,所以不是很安全,非特殊情况,不建议使用 git reset的语法格式为: git reset [--soft | --mixed...| --hard] [HEAD] –mixed(默认):默认的参数,将重置的更改留在工作区中 –soft:如果使用 --soft 参数,将重置的更改保存在暂存区 –hard参数:如果使用...--hard 参数,工作区和暂存区都不会保存记录,所以建议不要使用这种模式 OK,下面使用git命令实践一下 # 找到要回退的commit版本号,复制 git log # 重置本地库版本回退 git...reset --mixed [commitid] # 同步到远端仓库,要写上分支名称 git push -f origin [branchName]

    44110

    git版本库代码回退的技巧

    如下图 命令语法格式如下: git reset [--soft | --mixed | --hard] [HEAD] 其中,HEAD对应的值和git revert指令一样,可以使用多个^符号,也可以使用...该指令有几个模式,分别是mixed、soft、hard。 --mixed 为默认,可以不用带该参数,用于重置版本库中的文件与某一次的提交(commit)保持一致,工作区文件内容保持不变。...如下示例 $git reset --soft HEAD^2 # 重置上上个版本 --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。...如下示例 $git reset –hard HEAD^3 # 重置上上上一个版本 $git reset –hard bae128 # 重置到某个版本。...$git reset --hard origin/master # 将本地版本的状态重置到和远程的一样 注意:谨慎使用 –hard 参数,它会删除重置点之前的所有信息。

    1.5K10

    【git系列】git命令之撤销回退篇

    命令:git merge --abort commit后回退指定版本 命令git reset - git reset --soft: 将分支回退到指定提交,工作区维持现状不变,暂存区会在现有基础上增加该...- git reset --mixed: (默认操作)将分支回退到指定提交,暂存区也被同步为该指定提交,工作区保持不变。...- git reset --hard: 将分支回退到指定分支,暂存区和工作区都会被同步为该指定的提交。 git reset后的三个参数回退程度是依次递进。...soft最轻微,它不会重置当前工作区和暂存区,只会将回退版本后续的提交加到暂存区。 mixed会改变暂存区,使它和回退版本同步。 hard会重置工作区和暂存区,使它和回退版本一致。.../* git reset --soft target */ working index HEAD target working index HEAD ----

    1.8K10

    git使用教程8-pycharm 使用 Reset 回滚到某次 commit 提交

    这时候想把代码回退到某次 commit 提交,可以使用git的 reset 功能实现。...reset 回滚有三种类型: Mixed 此为默认方式 回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也不受影响) soft 回退一个版本,不清空暂存区...Reset Type类型有三种,默认Mixed: Mixed 此为默认方式 回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也不受影响) soft...Reset hard 前面 Reset HEAD 时候用默认是Mixed会发现上次提交的代码test_yoyoketang.py文件还在,变成了红色,如果想彻底回到上次的commit, 后面写的代码都不要...,Reset Type类型就选hard(慎重选择,要不然后面写的本地代码都找不到了) ?

    4.1K31

    轻松掌握Git开发(三)版本的切换

    我们先用索引值切换到最新的版本,执行指令: git reset --hard 05f2f17 然后执行指令: git reset --hard HEAD^ 运行结果: ?...reset指令的参数介绍 学习了版本切换之后,有同学可能会疑惑,git reset指令中的hard参数是什么意思?它是否有别的参数呢?...这里介绍reset指令的三个参数: soft mixed head 先看soft,这是官方文档对其的解释: Does not touch the index file or the working tree...看到这里,有些同学可能懵了,前面说了soft仅仅是改变了本地库中的HEAD指针,完全不触及索引和工作树,照这样说,工作区的内容应该完全没有变化,可通过git status指令,终端却提示我们有文件被修改了...mixed参数 现在我们版本是处于最新版本,我们通过mixed参数回退到最初始的版本试一试: git reset --mixed 43dc5b0 运行结果: ?

    57510

    【Git版本控制器】第三弹——版本回退,撤销修改,删除文件

    1.2git reset命令 命令基本格式: git reset [--soft | --mixed | --hard] [HEAD] git reset [--soft | --mixed |...--hard] [HEAD] 选项 --soft 重置版本库 保留工作区,缓存区更改 --mixed(不带参数时的默认选项) 重置版本库,缓存区 保留工作区更改 --hard(慎用) 重置版本库,缓存区...git reset --hard HEAD [filename] 方法二: 进行--mixed操作,再进行git checkout -- 操作 git reset --hard HEAD [filename...] git checkout -- [filename] 3.3进行了commit操作,但是没有进行push到远程仓库 前提条件,没有进行push操作,提交到远程仓库 git reset --hard...还有一个就是git提供的删除文件的操作。 git rm [filename] git rm [filename] 这个命令会直接把工作区和暂存区的这个文件都删除。

    28910
    领券