Git:恢复一个已经在提交中被删除的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git:恢复一个已经在提交中被删除的文件相关的知识,希望对你有一定的参考价值。
参考技术A 我的博客的源地址,希望大家照顾一下~这里要研究的问题是,如果我们在之前的某一个提交中删除了一个文件,如何使用git将此文件恢复出来。
首先我们要做的是找到当时删除的这个文件对应的提交。比较简便的方法是使用一些图形化的Git软件,可以直接浏览找到对应的提交。这些软件包括SourceTree,Github Desktop等。纯命令行的环境可以使用如下的命令:
在找到对应的提交后,使用如下命令:
注意一下,这里的 $commit 指的是对应的commit id。后面的 ~n 是git的一种语法,表明追溯某个提交的第 n 个祖先。详情可以参考 Git Treeishes Considered Awesome 。那这里的意思就是检出删除这个文件的提交的上一个提交(届时那个文件还存在)中的对应文件。
参考链接
git找回一个已经从远程仓库删除的文件
参考技术A通过下面这个命令我们可以查看在哪个 commit 中删除了哪些文件。
执行这个命令后效果如下:
比如我想恢复 ic_selected.png 这个文件,我们可以看到删除该文件对应的 commit id : f541888b0e7255cc6aa22a277f3dd9fe5502e5e2 。
接下来我们执行下面这个命令
这个命令会检出该 commit 的上一个提交中的文件,因为我们是在该 commit 中删除的文件,所以需要在上一个 commit 才能恢复出文件。
执行该命令后的效果
可以看到,执行完我们已经恢复了我们需要的文件。
以上是关于Git:恢复一个已经在提交中被删除的文件的主要内容,如果未能解决你的问题,请参考以下文章