我使用源码树。我创建了一个存储的多个更改,错误地删除它。有办法找回他们吗? 存储在内部作为从隐藏列表引用的合并提交。 git fsck可以找到悬挂的对象。它会找到不只是你删除的
git fsck可以找到悬挂的对象。它会找到不只是你删除的存储,但可能是其他的东西,所以你会想要寻找看起来像他们可能是你的存储提交(git显示< ID>显示一个对象的相关信息并决定它是否是你要找的)。
一旦你有了,你需要做的是将它重新插入到隐藏列表中。该列表存储在.git / logs / refs / stash中,一行具有以下格式:
<ID of previous stash commit in list or 0000000000000000000000000000000000000000 if none> <ID of merge commit> Your Name <your@email.example> <UNIX timestamp> <time zone, e.g. +0000><TAB char><description of stash>
这里有一个工作示例:
16b9a2d400dafe7ea25592029e3e5582d025c7d8 5def7605dfe625e8b3a3152fe52a87cc36694b6a Jan Krüger <email.censored@invalid> 1374227992 +0200 WIP on master: 0dbd812 Update draft release notes to 1.8.4
只是合成一个线你想要重新插入的存储(名称/邮件/时间戳/描述不必准确),你应该能够正常使用它。
快乐狩猎!