git - 删除了 2 个月的 Git 工作。如何让他们回来?

标签 git github git-svn

我真的不知道我刚刚做了什么,所以我只是想给出一个时间表。

我今天第一次尝试建立一个 gitHub 存储库。我有一个文件夹,用于保存我网站上的所有文件,它有一个 .git 文件夹。我时不时地进行更改等,一切似乎都很好。

今天我试图 merge 我正在处理的项目的两个分支。我尝试了“merge”和“rebase”命令,但我无法真正理解正在发生的事情或我在做什么,所以我决定从头开始使用 git。

我将 .git 文件夹从我的网站文件夹中 pull 出来(我没有删除它,我想这可能是我的救命稻草)。在文件夹中做了一个新的 git Init 并将网站文件提交给它。

那时我注意到丢失了大量文件。我认为它们仍在第一个 .git 文件夹中。有什么方法可以从此文件夹恢复目录?

最佳答案

令我惊讶的是,您已经使用 git 工作了两个月,并决定重新开始是从失败的 rebase 中恢复的最佳方式,它应该容易得多。

您应该能够在没有太多问题的情况下将旧的提交恢复到新的存储库中。

您可以添加一个新的 Remote ,它是您保存的旧存储库:

git remote add old /path/to/old/saved/.git

然后您可以获取所有旧历史记录。

git fetch old

然后你可以打开一个历史浏览器(例如gitk --all)来查看旧的历史。

您可以使用以下命令检查丢失文件的版本:

git checkout old/master -- path/to/missing/file

old/master 指的是旧版本库中的 master 分支,不过您可以在此处使用任何分支的 ID 或提交。

关于git - 删除了 2 个月的 Git 工作。如何让他们回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4679878/

相关文章:

git - 如何在不使用 .gitignore 的情况下保留文件的本地版本?

git bundle 从 stash 分歧点到 stash

git - 在 Github 中添加 git 标签时触发发布管道

git - 更新 fork 的 master 并将我的分支重新定位到它上面?

java - 如何知道项目是用什么版本的JDK开发的?

git-svn:如何将 git 提交从一个 SVN 分支复制到另一个?

git - 向下游项目传递参数

git - 如何获取 Go 的远程包?

尽管有 --subject 选项,但 git send-email 主题不会改变

git-svn dcommit 失败,原因为 "URL access forbidden for unknown reason"