【问题标题】:Git stash error "Cannot save the current status"Git 存储错误“无法保存当前状态”
【发布时间】:2019-11-19 09:34:53
【问题描述】:

运行“git stash”时出现此错误

Cannot save the current status

没有其他信息。

为什么会这样?

【问题讨论】:

  • git status 说什么?
  • "在分支 master 你的分支是最新的'origin/master'。没有提交,工作树干净

标签: git


【解决方案1】:

当您处于冲突中时,您有时会收到此错误。如果您检查 git status 并查看您是否处于合并冲突解决方案中,您将获得更多信息。

您可以中止合并: 如果您不想考虑之前的合并(您确定会丢失与合并相关的历史信息),您可以中止然后使用

git merge --abort

或者将你的 git 状态重置为原始 HEAD:

git reset ORIG_HEAD

希望对你有帮助。

【讨论】:

  • "git merge --abort" 给了我“致命的:没有合并到中止(MERGE_HEAD 缺失)。”。如果我重置为 head,并更改我的单个文件以尝试存储,我仍然会收到相同的错误
【解决方案2】:

在这里找到解决方案:Git stash fails 'error: unable to resolve reference refs/stash: No such file or directory'

rm -f .git/refs/stash

解决了它

【讨论】:

  • 我也不得不删除.git/refs/stash.lock。之后git stash 开始运作良好。
  • 我从您的链接中获得了解决方案,但是您删除的文件,不仅如此,我的问题通过您的链接中的 stackoverflow.com/a/19409320/4811421 答案得到了解决
【解决方案3】:

就我而言,.git/refs/stashroot 所有。

只需运行 chown -R <user>:<group> .git (Linux) 即可修复它。

请注意,您可能只需要chown -R <user>:<group> .git/refs/stash

<user><group> 替换为您的用户名和主组。

【讨论】:

    【解决方案4】:

    这是一个老问题,但这可能对 Mac 用户有所帮助。

    如果您从 Time Machine 手动复制文件,而不是通过 Time Machine 恢复文件,它会将ACLs 添加到所有内容中,这可能会破坏您的权限。

    例如,this article 中的“如何修复 Mac OS X 文件权限”部分显示“每个人”都有自定义权限,这就搞砸了:

    错误的权限,来自http://dreamlight.com/how-to-fix-mac-os-x-file-permissions

    您需要从这些目录/文件中删除 ACL。 This Super User answer 进入它,但这里是命令:

    sudo chmod -RN .

    然后您可以确保您的目录和文件具有适当的权限。我对目录使用 750,对文件使用 644。

    【讨论】:

      【解决方案5】:

      在我的例子中,我有使用 git 的 Visual Studio,并试图使用命令行进行存储。 关闭 Visual Studio 解决了这个问题。

      【讨论】:

        【解决方案6】:

        对我来说,

        cd .git/
        sudo chmod -R 777 *
        sudo chown -R owner:owner *
        git add . && git stash
        

        工作

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-24
          • 2013-09-04
          • 2014-04-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多