美文网首页
一次使用git的惨痛教训

一次使用git的惨痛教训

作者: 钱学敏 | 来源:发表于2018-09-16 10:29 被阅读0次

问题1

本地文件有a.js、b.js、node_modules
执行git add .后发现没有把node_modules添加忽略,于是撤销

git init 
git add .
git reset --hard

因为git没有提交, 不小心git reset --hard,工作区代码全没了

解决办法:

git fsck --lost-found  //找回git add过但是已经不存在文件中的内容

然后到这个路径下找回

.git/lost-found/other

https://www.cnblogs.com/hope-markup/p/6683522.html
如果你没有commit你的本地修改(甚至于你都没有通过git add追踪过这些文件,当他们被删除,git reset --hard对于这些没有被commit过也没有git add过的修改来说就是具有毁灭性的
but,如果你幸运的是曾经通过git add命令追踪过这些文件,只是没有commit它们而已!那么试试git fsck --lost-found这个命令吧!然后你就可以在本地项目文件中路径为.git/lost-found/other中找到它们!!并且呢,这里面包含了所有的没有被commit(指定到某次commit)的文件,甚至可能还包括你每次git add的版本(version一词实在不知道在这里怎么翻译,姑且就认为是版本吧)!
使用git fsck --lost-found这个命令,通过.git/lost-found/other这个路径,你可以恢复任何你git add过的文件!再通过find .git/objects -type f | xargs ls -lt | sed 60q这个命令,你就可以找到最近被你add到本地仓库的60个文件
当然咯,如果你没有git add过的文件呢,被git reset --hard这个命令整过之后呢,就如你自己执行delete命令一样,再也尸骨难寻啦(也就是真的毛都不剩了!!默哀三秒)!!!!

http://www.360doc.com/content/16/0219/11/10058718_535692779.shtml

git cat-file -p ID > a.md

问题2

恢复误删除的git stash记录 (how to retrieve a deleted git stash)
1.场景:使用git stash或者sourcetree贮藏了工作现场,然后被误删除了这个stash
2.恢复方法
a.首先使用git fsck --unreachable命令查找所有unreachable记录,记录的样子大概是这样子的:

unreachable commit 3cf816eeb0dc339513c63dd041e5f4efc6241e24
unreachable commit f318453870754947fe46cf5dfd022bdf33f9c3fd
unreachable blob 5899fee2b9250f6736c256cb88e4c48a6c7f730f
b.第二步,使用git show +<sha>命令会查找你需要恢复的那一条工作现场,sha是上面的key,我们恢复的时候只能恢复unreachable commit 开头的记录,unreach blob是不能用git statsh apply+<sha>来恢复的,会报not a stash-like commit 错误

c.使用git stash apply +<你找到的那条记录的key>恢复即可。

相关文章

  • 一次使用git的惨痛教训

    问题1 本地文件有a.js、b.js、node_modules执行git add .后发现没有把node_modu...

  • Gitlab篇:Gitlab 数据备份与迁移

    01 前言 虽说Git是分布式的,但是自从经历了上次Jira/Confluence 数据丢失的惨痛教训,为了以防万...

  • the first time meeting git

    第一次使用Github和Git提交完整项目步骤 项目中难免会使用git,这里记录一下我第一次使用Git和Githu...

  • git配置整理

    GIT使用(第一次) 一 、设置Git的user name和email: $ git config --globa...

  • git终端操作

    git终端使用 第一次使用git看这里 删除远程仓库的方法 克隆远程仓库到本地库:git clone http文件...

  • Why Git? Learn It!

    一次 git 入门使用分享的大纲整理,适合新手入门。 总览 为什么要用 Git? Git + SourceTree...

  • windows版 Git 安装

    高阳老师的教程页:第一次使用Git.md 下载 下载 windows版 Git SCM, https://git...

  • GIt的安装使用——TortoiseGit的安装使用

    老板决定不用原来的SVN,转用GIT来管理公司文件。然后如何使用Git就交给我了。第一次接触,看了一些的Git使用...

  • 使用GitLab公司内部项目管理

    参考文档Git/GitLab的使用值得注意的一部分就是第一次使用的时候,新项目创建了...使用git pull ...

  • git workFlow 基础版

    第一次使用git 完成文件的提交

网友评论

      本文标题:一次使用git的惨痛教训

      本文链接:https://www.haomeiwen.com/subject/trpxnftx.html