mam*_*uso 67
正如可以在git stash的文档中找到的那样,如果有效,你可能会很幸运:
恢复被错误清除/丢弃的藏匿处
如果您错误地丢弃或清除了皮带,则无法通过正常的安全机制恢复它们.但是,您可以尝试以下咒语来获取仍在存储库中但仍无法访问的存储列表:
git fsck --unreachable | grep commit | 切-d\-f3 | xargs git log --merges --no-walk --grep = WIP
如果您发现错误清除了存储,那么您可以执行以下操作:
git stash apply <stash>
Run Code Online (Sandbox Code Playgroud)
编辑:改为使用此命令git fsck --unreachable | grep commit | cut -d ' ' -f3 | xargs git log --merges --no-walk --grep=WIP
stu*_*dog 22
以上所有答案都以 a 结尾,git stash apply [commit]这是好的,但不是git stash clear. 为此,您需要重新存储孤立的存储提交。我发现这些指令几乎有效,但需要一个标志才能到达那里。总结:
git fsck --unreachable | grep commit | cut -d ' ' -f3 | xargs git log --merges --no-walkgit update-ref --create-reflog refs/stash 4b3fc45c94caadcc87d783064624585c194f4be8 -m "My recover stash"运行此命令来查找提交:
git fsck --unreachable | grep commit | cut -d ' ' -f3 | xargs git log --merges --no-walk --grep=WIP
Run Code Online (Sandbox Code Playgroud)
将列出类似以下内容:
Checking object directories: 100% (256/256), done.
commit c36e565014d9a927c36f16e78bc327eb375d33b8
Merge: dff6bc1 4e05a0c
Author: suhailvs <suhailvs@gmail.com>
Date: Thu Jul 19 13:32:01 2018 +0530
WIP on master: dff6bc1 added menu
Run Code Online (Sandbox Code Playgroud)
然后签出该提交c36e565014:
git checkout c36e565014
Run Code Online (Sandbox Code Playgroud)
我不得不使用
git fsck --unreachable | grep commit | cut -d ' ' -f3 | xargs git log --merges --no-walk
Run Code Online (Sandbox Code Playgroud)
获取所有孤儿存储,这将给出类似于以下的o/p:
Checking object directories: 100% (256/256), done.
Checking objects: 100% (395/395), done.
commit 3928306034b292770cc4cd2987c034ffad250e0b //commit stash hash
Merge: 16056a0 ac3c354
Author: Jimmy <mail>
Date: Thu Nov 14 17:31:05 2019 +0530
On profile: stashing for
commit 50f6f3a7161dd44bfcef2b8328a2329db4c7ec34
Run Code Online (Sandbox Code Playgroud)
并使用
git apply stash 3928306034b292770cc4cd2987c034ffad250e0b
Run Code Online (Sandbox Code Playgroud)
我又拿回了我藏起来的零钱。感谢https://mobilejazz.com/blog/how-to-recover-a-deleted-git-stash/
| 归档时间: |
|
| 查看次数: |
8008 次 |
| 最近记录: |