Git Reset 三种模式

怎么用?

git reset --mixd(默认,该模式可不指定) HEAD^ 
git reset --soft HEAD^
git reset --hard HEAD^
git reset HEAD^            # 回退所有内容到上一个版本  
git reset HEAD^ hello.java  # 回退 hello.java 文件的版本到上一个版本  
git  reset  052efajhfwehf           # 回退到指定版本
git reset –hard HEAD~3  # 回退上上上一个版本 z数字代表上几个 以此类推
git reset --hard origin/master    # 将本地的状态回退到和远程仓库的一样

HEAD 说明:

  • HEAD 表示当前版本

  • HEAD^ 上一个版本

  • HEAD^^ 上上一个版本

  • HEAD^^^ 上上上一个版本

  • 以此类推...

可以使用 ~数字表示
  • HEAD~0 表示当前版本

  • HEAD~1 上一个版本

  • HEAD^2 上上一个版本

  • HEAD^3 上上上一个版本

IDEA控制台报错解决:

head^是最新一次提交,如果指定提交版本id,可以回退指定的版本。

区别:

git reset --mixed:撤销上一次commit和add,回到本地编辑的状态,把上次已经commit提交的内容和已经add到暂存区的内容,都撤销,放回到本地工作区,需要重新add和commit。

git reset --soft:撤销上一次commit,回到git add.的状态,把已经提交到仓库的内容撤销放回暂存区中,本地工作区还没add的内容不受影响。

git reset --hard:撤销上一次对文件的所有修改,包括暂存区和上次已经提交到远程仓库的内容通通清除。

使用场景:

  • --hard:(1) 要放弃目前本地的所有改变時,即去掉所有add到暂存区的文件和工作区的文件,可以执行 git reset -hard HEAD 来强制恢复git管理的文件夹的內容及状态;(2) 真的想抛弃目标节点后的所有commit(可能觉得目标节点到原节点之间的commit提交都是错了,之前所有的commit有问题)。

  • --soft:原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files),所以假如我们之前工作目录没有改过任何文件,也没add到暂存区,那么使用reset --soft后,我们可以直接执行 git commit 將 index暂存区中的內容提交至 repository 中。为什么要这样呢?这样做的使用场景是:假如我们想合并「当前节点」与「reset目标节点」之间不具太大意义的 commit 记录(可能是阶段性地频繁提交,就是开发一个功能的时候,改或者增加一个文件的时候就commit,这样做导致一个完整的功能可能会好多个commit点,这时假如你需要把这些commit整合成一个commit的时候)時,可以考虑使用reset --soft来让 commit 演进线图较为清晰。总而言之,可以使用--soft合并commit节点

  • --mixed(默认):(1)使用完reset --mixed后,我們可以直接执行 git add 将這些改变果的文件內容加入 index 暂存区中,再执行 git commitIndex暂存区 中的內容提交至Repository中,这样一样可以达到合并commit节点的效果(与上面--soft合并commit节点差不多,只是多了git add添加到暂存区的操作);(2)移除所有Index暂存区中准备要提交的文件(Staged files),我们可以执行 git reset HEADUnstage 所有已列入 Index暂存区 的待提交的文件。(有时候发现add错文件到暂存区,就可以使用命令)。(3)commit提交某些错误代码,或者没有必要的文件也被commit上去,不想再修改错误再commit(因为会留下一个错误commit点),可以回退到正确的commit点上,然后所有原节点和reset节点之间差异会返回工作目录,假如有个没必要的文件的话就可以直接删除了,再commit上去就OK了。



作者:carway
链接:https://www.jianshu.com/p/c2ec5f06cf1a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

参考链接:https://www.jianshu.com/p/c2ec5f06cf1ahttps://www.jianshu.com/p/c2ec5f06cf1a

  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值