git pull failed'错误:refs / stash没有指向有效的对象!'

时间:2013-12-18 16:22:03

标签: git

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:...

3 个答案:

答案 0 :(得分:33)

最简单的方法是彻底删除你的藏匿处。请注意,您需要删除两个文件 - 而不是一个文件,如链接解决方案中所述:

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

答案 1 :(得分:0)

我刚遇到这个错误。两个服务器从同一个源中提取克隆;只有其中一人犯了这个错误。所以我深入挖掘。

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或更高版本。

或者,当然,放下藏匿处,但是下次有人藏匿时你的克隆会再次破坏。

答案 2 :(得分:0)

我在执行 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/ 下的所有缓存,并且我能够解决这些问题。