有没有办法用git还原我的项目文件。
以下是场景..。我在一家分公司工作了几天。这个分支从来没有被推到远程回购,所以它完全是本地的。
最后,我松开了我的.sln解决方案文件,所以我不能再打开项目了,但是在项目目录中,我仍然有.git目录。
如果我发出git日志,我可以看到它在很久以前就列出了提交,因此日志似乎是存在的。
有没有一种方法可以在这些日志中找到文件,或者根据日志中的提交来恢复我的项目?还是有别的办法?
更新
由于@RomainValeri,git checkout <commit-hash>可以工作,但它使头部处于独立状态。虽然这可能不是什么大事,但后来我发现git reset --hard HEAD~1工作得更好,因为我不需要在最后一次提交中保留更改,所以使用--hard会丢弃它们。如果需要保留这些更改,则使用--soft将头重置为上次提交之前的提交,并在最后提交区域中添加更改。
git reset --hard HEAD~1
git reset --hard HEAD~2
git reset --hard HEAD~3
...上述命令重置头指针1,2,3,.在上次提交之前提交,然后放弃任何更改。使用软而不是硬,如果你不想放弃这些改变,在这种情况下,这些变化将为你进行。
发布于 2019-03-29 23:16:45
是的,这就是git的基本原理:能够在开发的不同点恢复代码基。
基本上,任何提交都是快照。
因此,请放心:如果您看到了一长串日志,那么您不仅仅是在读取静态日志。此输出是根据git中可用的提交在执行时生成的。并且提交包含了一切。每个提交都是代码库的完整副本。
如果你这样做了
git checkout <commitHash>工作树(包含链接到repo的文件系统的目录)将被更新,以反映给定提交中描述的状态。
您可以使用您已经知道的git log命令找到这些提交散列,因此可以使用它读取提交消息以确定要检查哪个快照、存储/复制其散列(什么是SHA-1散列?)并检查它。
https://stackoverflow.com/questions/55426546
复制相似问题