如何在推送后恢复git中意外删除的文件和文件夹。以下是该场景。在git中恢复已删除的历史记录文件
- 意外删除了一个文件夹,它有一个文件,并对其他文件进行了一堆更改。
- 现在,推动所有这些变化。因此,此推送包含已删除的文件夹以及其他已更改的文件。
- 除此之外,还有一些推动。
现在,我可以恢复已删除的文件,以及历史,然后推回到回购。
如何在推送后恢复git中意外删除的文件和文件夹。以下是该场景。在git中恢复已删除的历史记录文件
现在,我可以恢复已删除的文件,以及历史,然后推回到回购。
当然,只是从它存在的提交中检查出来。如果提交的是删除的文件是不管你目前已签出的顶端,这是HEAD^
(前的最后一次提交):
git checkout HEAD^ -- path/to/file
然后你可以提交,并将它推。
你可以用一个提交SHA替换HEAD ^,这也可以工作。 –
假设您目前在master分支上,一个简单的解决方案是从上次提交(使用类似gitk帮助的东西)中找到GIT SHA1与您想要删除的文件。
执行命令
git checkout <GIT SHA1 value>
将文件复制到记事本的内容(或任何文本编辑器)
执行命令
git checkout master
重新创建与从记事本的内容文件
这会带回文件的历史吗? – Rams
是的,假设文件位于同一位置并且名称相同 –
Git没有*“*文件历史记录”。 Git有*提交历史记录*。恢复文件并且您的历史记录显示“提交K删除了一些文件,稍后提交R生成了与以前具有相同名称和相同内容的新文件”。这和你一样近。使用Ryan的答案来获取文件。 – torek
如果你没有使用git来删除它们,你可以重新设置你的工作空间来让它们恢复。你确定他们被删除? – osowskit
@osowskit你的意思是“如果你没有使用git删除”。我的问题本身是“如果我删除文件并推送删除的文件,如何恢复?” – Rams