git 错误操作恢复

前天辛苦用了一天时间,写完关键代码后。用 git 提交,由于修改的东东较多,用一个文件保存了修改的注释,用于 git commit -F commit.txt 。由于是在 windows 平台,所以这个文件是用的 gbk 编码。所以提交后,用 git log 查看日志时,出现乱码。此时就想用 git rebase -i HEAD~1 来修改注释。在选择命令时,用了 x ,进行命令行后,我直接 git commit -F commit.txt.。导致刚才的提交丢失。所以得恢复刚才的提交。

git 中有命令: git fsck --lost-found

可以查到丢失的。由于项目有段时间了,所以找到了一千多条记录。要在这一千条记录中找到我刚才丢失的那条可真不容易。所以此法不通。

于是,我浏览 .git  目录,发现里面有个 logs 目录,查看 HEAD,居然能看到刚才提交操作的日志,把那个版本号 git show,就是刚才提交的类容。

再把 .git/refs/heads/master 中的内容改成刚才的版本号,保存。再 git log。哈哈。。。刚才丢失的类容找回来了。

刚才在写这篇文章时,又百度了一把(天朝屏蔽了google,百度要用时不给力,不用时,却跑出来),发现  git 中有 git reflog 命令,能查看所有的操作日志。用 git cherry-pick 来进行恢复。比我前天的操作方法要安全。

git 错误操作恢复,布布扣,bubuko.com

时间: 2024-08-09 02:18:21

git 错误操作恢复的相关文章

误删项目文件,GIT方法恢复

git 恢复本地删除命令 git checkout -- foo.txt 结合*nix 管道的xargs,就可以把所有删掉的恢复 git ls-files -d | xargs git checkout --

Git 版本恢复命令 reset

reset命令有3种方式: git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级.如果还要提交,直接commit即可 git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容 以下是一些reset的示例: (1) 回退所有内容到上一个版本   git

Git 版本恢复命令reset

reset命令有3中方式: git reset -mixed: 此为默认方式,不带任何参数的git reset, 使用这种方式,项目会回退到某个版本,只保留源码,回退commit和index的信息. git reset -soft: 回退到某个版本,只回退了commit的信息,不会恢复到index file 一级,如果还要提交,直接commit即可 git reset -hard: 彻底回退到某个版本,本地的源码也会变成上一个版本的内容 reset的示例 1 git reset HEAD^ //

git stash恢复

今天下午在使用Git命令进行代码管理时,因为自己一时疏忽直接把自己一天的劳动成果给弄丢了,这还了得,吓死宝宝了.真的,相信有代码丢失的朋友肯定能体会我当时的心情,不能体会我心情的那就祝你们也丢次代码,这样就可以深刻体会到我的心情了.哎,然后冷静了两秒,妈蛋,不能就这么认栽吧,老子可不想再写一遍那恶心的UI还有一些页面逻辑!于是,打开百度问度娘!哎,别说,还真让我找到了!顿时有种拨开云雾见天日,守得云开见月明的心情.于是特写此博客希望大家以我为戒,千万不要因为自己的疏忽酿成不必要的麻烦,就算酿成了

不幸的问题还是出现了:Chromium代码上整理patch(working目录/master分支),部分文件做了git checkout恢复,结果GYP再编译就出错了

[email protected]:~/Projects/Chromium/src$ ninja -C out/Release android_webview_apk ninja: Entering directory `out/Release' [3/24] CXX obj/android_webview/browser/android_webview_common.shared_renderer_state.o FAILED: /home/redtea/Projects/Chromium/s

GIT撤销总结

任何版本控制系统的一个很有的用特性就是"撤销 (undo)"你的错误操作的能力.在 Git 里,"撤销" 蕴含了不少略有差别的撤销功能.当你进行一次新的提交的时候,Git 会保存你代码库在那个特定时间点的快照:之后,你可以利用 Git 返回到你的项目的一个早期版本.在这里,将我前段时间看书.看网页记录的东西记录一下,有一些在实际工作中还未使用过. 撤销还没有commit的工作目录中的修改 命令: git checkout -- <bad filename>

Git使用说明

Git是流行的分布式版本控制系统,可以方便的管理多人协作的项目并避免了集中式版本控制系统对服务器的依赖. 简介 版本库(repository)是一个由Git管理的目录,Git将跟踪工作目录下文件的修改并在需要时还原. 在工作目录下.git子目录则维护着版本库 . Git维护三个组件: 工作目录: 保存实际文件 暂存区 : 保存尚未提交的修改 版本库: 保存已提交的修改 HEAD: 指向最后一次提交后的结果(checkout 命令的主要功能就是操作HEAD). Git将每次提交的修改串成一条时间线

git 常用命令 mv rm checkout revert reset

关于上节讲的git add 时需要添加注释信息,也可以在git commit时再添加 [email protected] MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git add UI.js laoni@DESKTOP-TPPLHIB MINGW64 /c/laoni/PycharmProjects/github_test (master) $ git commit -m "添加UI.js" [master 358c

git 指令汇总

学习git过程中整理的笔记: git add 添加文件到暂存区: git commit -m "更改说明" 提交文件更改: git status 查看当前文件状态: git diff 详细查看文件修改的内容: 版本退回 git reset --hard 版本号commit_id: HEAD指向的是当前版本,HEAD^指向当前版本的上一个版本,以此类推: 版本历史 git log 或 git log --pretty=oneline: 操作历史 git reflog; git check