如何在reflog中设置git跟踪stash?

sz81bmfz  于 2023-11-15  发布在  Git
关注(0)|答案(3)|浏览(115)

在执行stash drop之后,删除的stash提交似乎甚至没有出现在reflog中。我是否可以配置git将它们保存在reflog中(以防我需要恢复它们)?
在这个网站上有很多关于通过fsck做这件事的帖子。但是我想提前启用某种类型的跟踪。

ohfgkhjo

ohfgkhjo1#

这在当前的Git(2.42)中是不可能的。这是因为:

  • 收藏是一个参考:refs/stash
  • 您可以通过ref的reflog引用旧的stash条目
  • 如果你删除了所有的隐藏文件,那么refs/stash也会被删除。
  • 对于任何ref:如果ref被删除,那么相关的reflog也会被删除

在ref删除后保留reflog文件(稍后会进行修剪)此时是project idea(显然没有人在处理它)。

zf2sa74q

zf2sa74q2#

根据Git Documentation...
如果您错误地删除或清除了stash条目,它们将无法通过正常的安全机制恢复。但是,您可以尝试以下咒语来获取仍然在存储库中但无法访问的stash条目列表。
文档提供了以下命令。我相信这正是您所需要的:

git fsck --unreachable | grep commit | cut -d\ -f3 | xargs git log --merges --no-walk --grep=WIP

字符串

xpcnnkqh

xpcnnkqh3#

如何在reflog中设置git跟踪stash?
在reflog中,你不能,Git跟踪了refs/stash reflog中的存储列表:git stash listgit reflog stash
git stash是为特定的工作流构建的。如果你想要一个不同的工作流,你可以使用git stash create来创建一个存储集,以你想要的方式管理对你的存储集的引用,并应用你想要的git stash apply $thatset

相关问题