从Git里拿回你误删除并Commit的文件

问题
Git监控的工程里,总有那么几个文件,你不想被跟踪但是却又不得不保留在工程目录里的,比如我们工程项目里的SwitchServerMode这个类,可以切换服务地环境的控制类,时不时要改一下。我习惯通过git rm -r --cached来让文件不被跟踪,某一天不小心忘记加--cached了,后果当然是文件被删除,并且被我保存到了仓库历史里了。

解决方案

1.git rev-list -n 1 HEAD -- <file_path>:获取文件被影响的最后一个版本的commit idfile_path是文件路径。
2.git checkout <deleting_commit>^ -- <file_path>:让文件恢复到受影响版本的上一个版本,注意^~的区别,^当有多个父分支的时候,需要指名具体是哪一个父分支。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 配置 首先是配置帐号信息ssh -T git@github.com # 登陆 github 修改项目中的个人信息 ...
    guanguans阅读 4,068评论 0 3
  • 获取与创建项目 创建仓库的途径有:在本地已有的目录,初始化一个新的;克隆复制一份别人的项目。 git init 在...
    daking阅读 11,628评论 3 48
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 5,298评论 0 3
  • 简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 与常用的版本控制工具 ...
    闽越布衣阅读 7,689评论 0 18
  • 转自:https://mp.weixin.qq.com/s/sF-cx2ss4haO74K55Sjf9g 配置 首...
    faremax阅读 2,187评论 0 0