【问题标题】:Git stash fails 'error: unable to resolve reference refs/stash: No such file or directory'Git stash 失败'错误:无法解析参考 refs/stash:没有这样的文件或目录'
【发布时间】:2013-08-31 01:41:35
【问题描述】:

Git pull 命令运行正常,但 git stash 出现以下错误:

$git stash
error: unable to resolve reference refs/stash: No such file or directory
fatal: Cannot lock the ref 'refs/stash'.
Cannot save the current status

如何解决这个问题,以免丢失我的更改?

【问题讨论】:

  • 你的用户是否有.git/.git/refs目录的写权限?
  • 你使用的是什么操作系统和git版本?
  • git 版本 1.7.9.5,Linux 操作系统。 .git 和 .git/refs 具有读取和执行权限
  • @schipitch: 必须能写入目录,否则无法创建文件
  • @knittl 我使用 git 已经有一段时间了,它一直在使用相同的权限,直到今天才发生此错误。

标签: git git-stash


【解决方案1】:

在文件系统损坏后,我遇到了非常相似的问题。

解决方案是删除 .git/logs/refs/stash 中的文件或目录

删除文件或目录后,请使用 git stash 创建新的 ref,就这样了。

这将删除您可能拥有的所有存储,因此请小心。

git stash
error: refs/stash does not point to a valid object!
rm -r .git/logs/refs/stash
git stash
Saved working directory and index state WIP on master: e1d74d8 fixing get_thumbnail_list

【讨论】:

  • 是的,我做过类似的事情,这个问题没有再次出现。谢谢
  • 在 git 版本 2.6.2 上,该文件位于:.git/refs/stash
【解决方案2】:

我还必须删除以下文件才能使其正常工作。

rm -f .git/refs/stash

【讨论】:

  • 计算机在 git stash 操作期间崩溃,似乎我丢失了所有的存储。 TL;DR:只删除这个糟糕的.git/refs/stash 让我可以恢复我的存储列表。如果它对其他人有帮助:我的藏匿在.git/logs/refs/stash 中似乎还可以(所以不想删除它)。遵循以下第一步:dev.to/meduzen/recover-a-lost-git-stash-in-two-steps-569 其中git fsck 命令报告:error: refs/stash: invalid sha1 pointer 0000000000000000000000000000000000000000 error: bad ref for refs/stash 但停在这里并进行了另一次搜索以找到这个 SO 答案:D。
  • 没有完全工作 - 似乎它所做的只是让git stash list 返回,但尝试运行git stash apply 根本不起作用。 warning: Log for ref refs/stash unexpectedly ended on Tue, 17 Dec 2019 22:27:25 +0900.我想我必须放弃这个回购并重新开始。其他 git 操作似乎也无法正常工作。
  • 我也不得不删除.git/refs/stash.lock。之后git stash 开始运作良好。
【解决方案3】:

如果删除存储后问题仍然存在,您可以删除存储并添加新的存储文件夹:

rm -r .git/logs/refs/stash

mkdir .git/logs/refs/stash

【讨论】:

    猜你喜欢
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 2017-10-18
    • 2018-12-26
    • 1970-01-01
    • 2022-07-06
    • 2017-06-22
    相关资源
    最近更新 更多