git中误删提交(commit)后,怎么恢复

“xml文件存储数据”提交被我误操作,即使用reset  --hard删除了,然后又进行了三次提交,发现删除的提交有用,需要找回来,

于是找了好久,找到好方法:

1。进入工程下的.git文件下,git reflog命令

2.使用命令git branch recover_branch 5b7cf2c(哈希码)

然后在新分支recover_branch中就有我删除的提交了,如下图

注意:reset hard还是谨慎操作

时间: 2024-10-04 02:12:13

git中误删提交(commit)后,怎么恢复的相关文章

磁盘阵列中分区信息丢失后如何恢复磁盘的盘符

磁盘阵列,也可以说是容错式廉价磁盘阵列,可以将多个较小的磁碟整合成为一个较大的磁碟装置.对磁盘阵列的操作,主要是空间的分区,即磁盘阵列分区,而分区又可以分为一个或多个区.本文介绍的方法是磁盘阵列中的分区信息丢失后如何恢复磁盘的盘符. 当用户对服务器重新配置磁盘阵列信息时,重配磁盘阵列的信息得保证和当初配置信息一致,如果配置的参数和当初配置的不一致,部分目录可能正确,但绝大多数文件不能打开,造成数据丢失,而部分服务器在重配阵列信息后要自动初始化,所有的数据都会清除,这种情况造成的损失就更大了. 当

(转)找回Git中丢失的Commit

总结:更新代码前一定要先将本地修改的文件存到本地git仓库.今天脑残直接更新了远程仓库代码导入今天写的代码...... @[git|commit|reflog] 在使用Git的过程中,有时候会因为一些误操作,比如reset.rebase.merge等.特别是在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时自己的Commmit记录也消失了.碰到这种情况,不要慌,我们在Git上做的任何

git中避免提交.DS_Store文件[转载]

1. 先删除原有的.DS_Store: find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch 命令解释:在当前文件夹以及当前文件夹的子文件夹中找到所有的.DS_Store文件,并将找到的文件通过管道传给xargs来处理.注意几个参数的理解: -print0:在find后不添加换行符(-print默认会添加换行符) -0:将管道送来的字符串当做普通的字符串,不做任何转义处理. 2. 建立.gitignore文件 v

git修改已提交commit的内容

假设我们需要修改倒数第三个commit的内容 1.首先调用`git rebase` git rebase -i HEAD~3 此时会产生如下的提交列表 pick f7f3f6d changed my name a bit pick 310154e updated README formatting and added blame pick a5f4a0d added cat-file # Rebase 710f0f8..a5f4a0d onto 710f0f8 # # Commands: # p

Git中使用amend解决提交冲突

问题描述       场景:当你提交的时候,发现跟要合并的流有冲突,你需要解决完冲突再次提交. 如果在SVN时代,你可以直接在本地解决完冲突再提交就可以了,因为SVN会把正确的代码先提交到服务器,至于有冲突的代码,你需要在本地解决完冲突再提交. 但在Git中这样做行不通,Git中每次提交都是完整的,也就是说,即使你这次提交有中冲突的代码,它也一并会推送到要合并的流,每次提交会有一个change_id,当你解决完冲突提交后,这个change_id又会发生变化.这样导致的直接后果是:由于Git是由提

git 修改已提交的注释

在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息 修改最后一次提交注释 git commit --amend 然后在出来的编辑界面,直接编辑注释的信息,保存退出 git rebase -i HEAD~3 git使用amend选项提供了最后一次commit的反悔.但是对于历史提交呢,就必须使用rebase了. 修改push后的历史提交注释 这个命令出来之后,会出来三行东东: pick:******* pick:******* pick:******* 如果你要修改

commit后数据库干的工作

用户提交commit后,数据库干的工作有: 1,oracle为用户的transaction生成一个SCN号. 2,LGWR把redo buffer中的数据写入到redo log file,同时把SCN号记录到redo log file中.这一步完成后,说明用户提 交的数据已经安全的写到磁盘 3,释放用户session占用的locks,这些locks可以在V$LOCK中查到.释放用户的lock后,那么其他在等待lock的session 就会被唤醒,继续它们的工作 4,如果在commit后,用户tr

忽略git中不需要进行版本管理的文件

在git中我们提交项目的时候有很多东西是不需要进行版本管理的,因此我们需要忽略掉. 虽然在github2.0的windows客户端提供了工具,但是这个工具并不是想象中的那么好用. 在上面点右键出现的Discard changes只能忽略掉一个文件,如果想忽略掉一个文件夹里的所有文件,这样点下去还不累死? 为了解决这个问题,我们还是用命令行来做,其实很简单,就用到一个命令,git status.我们打开桌面上的Git shell图标 他的用法与windows的命令行基本是一样的.跳转到要忽略文件夹

[GIT]提交后版本恢复

如果在回退以后又想再次回到之前的版本,可以用relog查看commit id,再使用reset设置. 1.执行 relog 后: 展示的最前面的部分就是commit id,后面会用来作为恢复的标志. 这里我们想要恢复 ,commit id 为 b23a5f7 2.考虑恢复后的安全问题,新建一个分支,将恢复的代码放在新的分支上面   3.将恢复的代码先放到新的分支(songxudong)上 这里使用reset命令,参数 --hard 后面使用的是想要恢复的 commit id 这样就将想要恢复的版