2

使用 Win7,64 位。

我使用 GitExtensions GUI,它已经运行了 3 个月。今天我做了一个提交,立即推送到我的服务器仓库,然后关闭。当我在当天晚些时候重新启动并尝试进行另一次(本地)提交时,GitExtensions 告诉我我从未提交过该 repo 并显示了 119 个带有更改的文件。

显然有些东西被炒了,所以我的第一个想法是从我的服务器回购中提取。你猜怎么着?服务器回购也表明我从未承诺过它。

所以我的下一个想法是 GitExtensions 在骗我。所以我搬到了 Tortoise GIT 并做了一个“查看日志”。你猜怎么着?GitExtensions 没有说谎。Tortoise GIT 还表明我从未承诺过我的回购协议。

当我在 repo 中实际浏览时,我可以看到所有目标文件,其时间戳看起来很合理,涵盖了我在这个项目上工作的 3 个月。

我怎样才能让 GIT 恢复并意识到我还有 3 个月的提交时间?我看到的唯一文章是关于如何恢复需要使用早期提交作为起点的单个丢失提交。显然这对我没有帮助,因为我看不到任何提交。

谢谢你的帮助。

4

3 回答 3

1

首先,备份您的存储库,这样任何失败的修复尝试都不会更糟地破坏它。

git fsck可以帮助查找和修复存储库中的错误。

git reflog可以帮助您识别孤立的提交并重建历史。

这个关于“错误的默认修订”错误的答案可能会有所帮助。

如果 fsck 对您没有任何帮助,我的第一个想法是尝试将远程存储库的 HEAD 重置为一次提交,然后尝试重新克隆。

于 2012-01-03T01:24:05.943 回答
1

检查你得到的“git log master”或任何其他分支。如果可行,您可以使用“git bundle”显式导出提交和所有相关对象。冲洗并重复询问 .git/refs 中的其他分支。

最好是下拉到命令行来解决这个问题。下载最新的 msysgit。

于 2012-01-03T08:47:50.070 回答
0

.git文件夹还在吗?如果是,那就是 git 存储所有信息的地方。如果没有,那么就没有什么可以挽回的了。如果没有,那么您的本地 git 就消失了。如果您.git仍然在那里,请尝试运行 git log 并查看它显示的内容。

如果您的 .git 文件夹不见了,那么您应该能够从您的服务器进行“新”克隆以检索所有内容。

于 2012-01-03T00:51:08.830 回答