git学习笔记-发现问题如何恢复

1.概要

git总出各种问题,不清楚原因。所以准备了解的跟深入些。本来的理解是这样的:

下载我就pull

修改完就

commit然后push

怎么会有问题的,结果还总有。

既然问题无法避免,那就提高解决问题和恢复问题的能力。如果问题能够恢复就没有什么可担心的。那么恢复问题的方法就那些呢?有如下两种,一种是回退,回退到某一个正确的版本,一种是对某一个错误的版本重新处理。

二 常用的处理流程

1.reset 回退

1.1 基本步骤

1.1.1 git reset --hard

1.1.2 git push -f 因为你push的版本较低,需要强制提交

1.2 回退的基本原理:git reset --hard命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。

1.3 重置的几种类型

1.3.1 --hard 最危险、但也最简单有效

--hard是最直接,最危险,同时也是使用最频繁的选项。当我们传入 --hard 执行 git reset 时,Commit History会被更新到指定的commit,同时暂存索引和工作目录也会被重置到对应commit的状态。这意味着,指定你工作目录和暂存索引里的内容会丢失。

1.3.2 --mixed 
--mixed 是默认的选项。这种模式下,引用指针会更新。暂存索引被重置到指定commit的状态,任何暂存索引未提交的变更都会被移动到工作目录中。

1.3.3 --soft
我们传递--soft 选项时,引用指针被更新, 暂存索引和工作目录保持不变。

2. revert 重做某一个版本

2.1 基本步骤如下

2.1.1 git revert -n 版本号

2.2.2 git commit -m 版本名

2.2.3 git push

这个步骤多半是会有问题的,因为如果再去掉这个版本的过程中,往往会有合并,如果有合并的话,这里就需要你处理冲突,没有冲突的情况特别扫,除非这个版本中你做的就是添加或者删除文件的事。

基本上可以把这两种情况教主 revert commit 和revert merge commit ,如果有merge是需要处理冲突的。

2.2  两种不桶的从做方法

git revert --abort  合并后如果有冲突,恢复原状,就像什么都没发生过一样

git revert --quit 和并后,保留处理的结果,如果有冲突,需要手动合并。

3.放弃本次修改

3.1 没有提交的情况

3.1.1 未git add

 git checkout – filepathname 

 git checkout .//全部文件

3.1.2 已经git add

git reset HEAD filepathname

git reset HEAD .

3.1.3 已经 git commit

git reset --hard commitid //任意版本

git reset --hard HEAD^ //上一版

3.1.4 对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖

git fetch --all
git reset --hard origin/master
git pull

4 其他命令

4.1 git status 查看工作区文件的状态

4.2 git-ls-files  -    显示有关索引和工作树中文件的信息

     -s --stage在输出中显示暂存内容的模式位,对象名称和阶段编号

4.3 git rm --cached 文件名 删除缓冲区的文件

      git stash 删除.git 文件中index文件夹中的全部文件

4 参考连接

Git回退版本的几种操作_git回滚到指定版本-CSDN博客

Git恢复之前版本的两种方法reset、revert(图文详解)_git reset 回退以前某个版本_chentiebo的博客-CSDN博客

git如何放弃本地修改操作_git放弃本地修改_北漂燕郊杨哥的博客-CSDN博客

git: 放弃所有本地修改_git放弃本地修改-CSDN博客

Git杂谈—— 万字长文详解git reset - 知乎

https://www.cnblogs.com/ahzxy2018/p/14521922.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值