【问题标题】:git pull fails 'error: refs/stash does not point to a valid object!'git pull 失败“错误:refs/stash 未指向有效对象!”
【发布时间】:2014-01-06 22:22:07
【问题描述】:

git pull 出现此错误:

$ git pull
error: refs/stash does not point to a valid object!
error: refs/stash does not point to a valid object!
error: refs/stash does not point to a valid object!
error: refs/stash does not point to a valid object!
Current branch mybranch is up to date.

我已经尝试过this solution,但它对我不起作用。 更新信息:

$ GIT_TRACE=1 git pull 
trace: exec: 'git-pull'
trace: run_command: 'git-pull'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'rev-parse' '--is-bare-repository'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'ls-files' '-u'
trace: built-in: git 'symbolic-ref' '-q' 'HEAD'
trace: built-in: git 'config' '--bool' 'branch.mybranch.rebase'
trace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD'
trace: built-in: git 'rev-parse' '--verify' 'HEAD'
trace: built-in: git 'update-index' '-q' '--ignore-submodules' '--refresh'
trace: built-in: git 'diff-files' '--quiet' '--ignore-submodules'
trace: built-in: git 'diff-index' '--cached' '--quiet' '--ignore-submodules' 'HEAD' '--'
trace: built-in: git 'rev-parse' '-q' '--git-dir'
trace: built-in: git 'rev-parse' '-q' '--verify' 'refs/remotes/origin/mybranch'
trace: built-in: git 'merge-base' '53512e9ce3faa7c78b6d5d7ba1a63e56b5a42a11' 'refs/heads/mybranch'
trace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD'
trace: built-in: git 'fetch' '--update-head-ok'
error: refs/stash does not point to a valid object!
trace: run_command: 'ssh' 'git@git-master' 'git-upload-pack '\''function-test'\'''
error: refs/stash does not point to a valid object!
trace: run_command: 'rev-list' '--verify-objects' '--stdin' '--not' '--all' '--quiet'
trace: run_command: 'rev-list' '--verify-objects' '--stdin' '--not' '--all'
trace: exec: 'git' 'rev-list' '--verify-objects' '--stdin' '--not' '--all'
trace: built-in: git 'rev-list' '--verify-objects' '--stdin' '--not' '--all'
error: refs/stash does not point to a valid object!
error: refs/stash does not point to a valid object!
trace:...

【问题讨论】:

  • 不确定这是否有帮助。但是试试git remote prune origin
  • 请使用$ GIT_TRACE=1 git pull 并使用用于调用git fetch 的实际参考规范更新您的问题(git pull 的第一件事)。
  • @Vimsha: $ git remote prune origin 返回error: refs/stash does not point to a valid object!
  • git remote prune origin 为我工作!

标签: git


【解决方案1】:

最简单的方法是完全删除您的存储。请注意,您需要删除两个文件 - 而不是一个文件,如链接解决方案中所述:

rm .git/refs/stash .git/logs/refs/stash

【讨论】:

  • rm .git/refs/... 对我有用,谢谢@mockinterface。
  • 之后必须运行 git stash 并且错误消失了
  • 我最终在整个 .git 目录中进行了文本搜索并删除了所有引用。
  • 我在使用 git-gui 0.21 的 Windows 上,当我转到菜单 Repository -> Visualize master's history 时,它显示了错误,但我这样做了,消息消失了,希望永远不会再显示
【解决方案2】:

我刚刚遇到了这个错误。两台服务器从同一来源拉取克隆;他们中只有一个人给出了这个错误。所以我挖得更深了。

Git 的release notes for version 1.8.5.5 状态:

  • “git clone”将无法从具有 ref 的存储库中克隆 直接在“refs/”下,例如“refs/stash”,因为不同 验证路径在这样的 refname 上做不同的事情。松开 客户端的验证以允许这样的参考。

我发现其中一台服务器使用的是 Git 1.7.1,另一台使用的是 Git 1.8.5.6。

值得注意的是,fetch 命令也会失败,尽管上面的发行说明中没有明确提及。


在我的特殊情况下,我还发现使用 Git 1.7.1 的服务器实际上后来的 Git,但它后来在 PATH 环境变量中。

有趣的是,当我使用较新的版本运行 git fetch 时,此后的克隆即使使用较旧的版本也能正常工作。


最简单的解决方案就是将 Git 升级到 1.8.5.5 或更高版本。

或者,当然,删除存储,但是下次有人进行存储时,您的克隆将再次中断。

【讨论】:

    【解决方案3】:

    我在执行go buildgo mod tidygo run 时遇到了类似的问题。所有的命令都给了我同样的错误,

    '错误:refs/stash 没有指向一个有效的对象!'

    我尝试了很多方法,如下所示。

    1. git remote prune origin
    2. git stash
    3. rm .git/refs/stash .git/logs/refs/stash

    没有什么对我有用。最后,我删除了系统中路径 $GOPATH/go/pkg/mod/cache/ 下的所有缓存,并且能够解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 2012-09-10
      • 2011-11-13
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2013-07-29
      • 2017-05-26
      相关资源
      最近更新 更多