我正在使用源树。我创建了一个包含多个更改的存储库,并错误地将其删除。有没有办法把它们找回来?

最佳答案

stash 在内部保存为从 stash 列表引用的 merge 提交。
git fsck 可以找到悬空物体。它不仅会找到您已删除的 stash ,而且可能还会找到其他东西......您正在寻找的一个)。

一旦你有了它,你需要做的就是将它重新插入到 stash 列表中。该列表存储在 git show <ID> 中,一行具有以下格式:

<ID of previous stash commit in list or 0000000000000000000000000000000000000000 if none> <ID of merge commit> Your Name <[email protected]> <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

只需为要重新插入的 stash 合成一行(名称/邮件/时间戳/描述不必准确),您应该可以再次正常使用它。

狩猎快乐!

关于git - 使用 SourceTree 在 Git 中检索已删除的存储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17743078/

10-14 04:01