1

我完全失去了所有的提交吗?我知道这很愚蠢,对此我很抱歉,但这是一个无辜的错误,没有正确考虑工作流程。

编辑

覆盖是手动拖放,没有输入终端命令。

我在一个mac上。

我有时间机器,并且可以检索我的旧新回购(如果你知道我的意思,我的头正在融化),但我可以合并它们(已经做了更改,寻找截止日期)还是我应该只是恢复它的备份整体?

4

3 回答 3

1

窗户?Linux?

如果是 Windows,您可以尝试使用恢复工具或可以直接读取磁盘的十六进制编辑器来恢复文件。在Linux上,我不知道。

但是,是的,如果您没有备份……那是您的错!=)

于 2011-04-21T13:45:39.190 回答
1

好吧,这会很麻烦,但你的提交可能仍然存在……</p>

运行git fsck --full(可能需要一段时间)——它将列出所有悬空的 blobs/trees/commits。git log用/ git show/检查每个危险的提交gitk。当你找到一个分支的头部提交时,重新创建分支git branch <branchname> <sha1 of commit>(你必须记住你的旧分支名称)


由于您使用时间机器恢复了旧存储库状态并且现在在桌面上拥有旧存储库,因此对您来说最简单的事情是添加一个新的远程,然后获取远程提交:

git remote add old-repo /path/to/your/desktop/old-dir/.git
# sorry, no clue what the actual path might be on mac systems (~/Desktop/…?)
git fetch old-repo

之后,您将拥有旧存储库中的所有分支作为old-repo/branchname. 要合并它们,只需发出git merge old-repo/branch命令。这只是基本的 git fu 将存储库设置为附加远程并合并其更改(这里没有魔法,继续前进)

于 2011-04-21T13:49:57.187 回答
0

有时,只是有时你会很幸运。在 Windows 7 上,打开文件夹的属性并单击“以前的版本”。

我很幸运地找到了使用该技术的旧 iPhone 备份,因为它看起来像我已经失去了一切!!

于 2012-03-09T16:08:25.923 回答