git 撤销全部的commit_恢复git撤销commit的代码
使用git reset --hard 是将磁盘文件也删除
时候使用Git工作得小心翼翼,特别是涉及到一些高级操作,例如 reset, rebase 和 merge。甚至一些很小的操作,例如删除一个分支,我都担心数据丢失。
不 久之前,我在做一些大动作(rebasing)之前,我总是备份整个版本库,以防万一。直到最近我才发现git的历史记录是不可修改的,也就是说你不能更 改任何已经发生的事情。你做的任何操作都只是在原来的操作上修改。也就是说,即使你删除了一个分支,修改了一个提交,或者强制重置,你仍然可以回滚这些操 作。
让我们来看一些例子:
$ git init
$ touch foo.txt
$ git add foo.txt
$ git commit -m "initial commit"
$ echo ‘new data‘ >> foo.txt
$ git commit -a -m "more stuff added to foo"
你现在看git的历史记录,你可以看到两次提交:
$ git log
* 98abc5a (HEAD, master) more stuff added to foo
* b7057a9 initial commit
现在让我们来重置回第一次提交的状态:
$ git reset --hard b7057a9
$ git log
* b7057a9 (HEAD, master) initial commit
这看起来我们是丢掉了我们第二次的提交,没有办法找回来了。但是 reflog 就是用来解决这个问题的。简单的说,它会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中。
$ git reflog
b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit
所以,我们要找回我们第二commit,只需要做如下操作:
$ git reset --hard 98abc5a
再来看一下 git 记录:
$ git log
* 98abc5a (HEAD, master) more stuff added to foo
* b7057a9 initial commit
所以,如果你因为reset等操作丢失一个提交的时候,你总是可以把它找回来。除非你的操作已经被git当做垃圾处理掉了,一般是30天以后。
原文:https://www.cnblogs.com/wwjldm/p/10456067.html
git 撤销全部的commit_恢复git撤销commit的代码相关推荐
- 【Git笔记3】关于撤销、删除、恢复的那些事儿
在跻身于"国庆抢票大战"的我们,不要忘记学习,今天接着上篇 [Git笔记2]必知习惯和如何版本回退,继续开干!一起来瞅瞅如何撤销没有add的修改,如何撤销以及add到暂存区的修改, ...
- Git已经在本地提交过文件了,但又给撤销了,恢复已经撤销的内容
Git,我已经在本地提交过文件了,也就是已经执行了git commit -m "xxx",但提交完之后又给撤销了,撤销的还能回来嘛? 这种情况仍然有机会恢复它.撤销提交的方法取决于 ...
- GIT入门笔记(11)- 多种撤销修改场景和对策--实战练习
1.检查发现目前没有变化 $ git status On branch master nothing to commit, working tree clean $ cat lsq.txt 2222 ...
- Git——撤销和删除操作【git restore / git rm 】
前言:针对文件的撤销修改或者删除文件操作一般有以下几种情况: 1. 撤销文件修改 1.1 git restore – filename - 工作区文件改动未添加到暂存区 当修改后的文件还未放到暂存 ...
- Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库
Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更,git rese ...
- linux git 撤销删除文件,删除文件以后,如何通过git撤销删除的文件,不提交到远端代码库...
检查状态,看看发生了什么: $ git status On branch master Changed but not updated: (use "git add/rm ..." ...
- git撤销单个文件的修改_git 撤销修改以及删除文件
撤销修改 1.如果当你修改了代码,然后又发现修改错误以后,想撤销前面的操作的时候该怎么办呢? 既然错误发现得很及时,就可以很容易地纠正它.你可以删掉最后一行,手动把文件恢复到上一个版本的状态.如果用 ...
- git版本回退命令_git 版本回退 撤销 删除
1 未使用 git add 缓存代码时(在工作区的时候) 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记 ...
- git 撤销刚才的rebase_撤消git rebase
回答(15) 2 years ago 最简单的方法是找到分支的头部提交,因为它是在reflog中的rebase开始之前... git reflog 并将当前分支重置为它(关于在使用 --hard 选项 ...
最新文章
- Linux 守护进程的原理与实现
- 为IDOC创建tRFC连接
- python(numpy,pandas7)——pandas的数据选择
- 博客园如何使用MarkDown
- 阿里云 超级码力在线编程大赛初赛 第2场 题目3. 五字回文
- 基于mono和C#运行的cms产品
- 腾讯QQ空间g_tk算法
- 移动端禁止页面缩放问题
- Nodejs 使用express模块创建一个服务器
- before和after怎么区分_触发器before和after的区别
- Azure Services Bus(服务总线)中的工作流(workflow)
- C语言 第二章 数据类型、变量和输入函数
- Libmicrohttpd简介
- java webrtc视频会议_JAVA webRtc的实现视频会议系统
- C#会员管理系统源码 会员消费管理系统源码
- vt功能对计算机有影响吗,电脑开vt有什么坏处
- 最大公约数和最小公倍数(深入理解)
- 关于java web开发中的很多小问题集锦
- 港科夜闻丨香港科大获越秀集团捐赠港币一亿元支持大学发展
- windows7声卡驱动修复压缩包