在最后一次合并到我的Git存储库的主分支之后,我失去了克隆存储库的能力.
Cloning into test-repository...
remote: Counting objects: 126084, done.
remote: Compressing objects: 100% (28327/28327), done.
Receiving objects: 100% (126084/126084), 132.63 MiB | 29.30 MiB/s, done.
remote: Total 126084 (delta 96101), reused 126078 (delta 96095)
Resolving deltas: 100% (96101/96101), done.
error: refs/remotes/origin/master does not point to a valid object!
error: Trying to write ref refs/heads/master with
nonexistant object 951aca8051823b2f202d30c9cb05401ef17618c6
Fisheye是一个存储库托管工具,它正在报告:
Unable to fetch from remote repository: /var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git error: unable to find 0d998c99b6d01e8aabca72b1934802acf90b8fc9, fatal: object 0d998c99b6d01e8aabca72b1934802acf90b8fc9 not found
master分支上的存储库中的最后一次提交是:
commit 0d998c99b6d01e8aabca72b1934802acf90b8fc9 Merge: a6ea4b3 1f373a9 Date: Fri Dec 14 13:57:24 2012 +0200 Merge branch 'new_error_code'
我试过了:
cd /var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git
git gc
git fsck --full
git reflog expire --expire=0 --all
git update-ref
git gc --aggressive
Run Code Online (Sandbox Code Playgroud)
以下问题对我的案例没有帮助:
Mat*_*zuk 36
git gc
git fsck --full
git reflog expire --expire=0 --all
git update-ref -d 0d998c99b6d01e8aabca72b1934802acf90b8fc9
git gc --aggressive
git remote update --prune
Run Code Online (Sandbox Code Playgroud)
它工作了!
Shi*_*ght 10
为 Matt Harasymczuk 的回答提供解释:
执行垃圾收集,以便 Git 可以清理它自己造成的混乱(有关 git gc 的更多信息请参见此处)
git gc
Run Code Online (Sandbox Code Playgroud)
验证数据库中对象的连接性和有效性(有关 git fsck 的更多信息请参见此处)
git fsck --full
Run Code Online (Sandbox Code Playgroud)
删除参考日志中的所有条目(有关 git reflog 的更多信息请参见此处)
git reflog expire --expire=0 --all
Run Code Online (Sandbox Code Playgroud)
删除对指定哈希的引用(有关 git update-ref 的更多信息请参见此处)
git update-ref -d <your hash here>
Run Code Online (Sandbox Code Playgroud)
再次运行垃圾收集,丢弃所有旧的增量。这将比第一次花费更长的时间,但在优化存储库方面更加彻底(更多关于积极垃圾收集的信息请参见此处)
git gc --aggressive
Run Code Online (Sandbox Code Playgroud)
更新远程列表,删除对不再存在的分支的引用(更多关于 git remote 的信息请点击这里)
git remote update --prune
Run Code Online (Sandbox Code Playgroud)