运行git gc --prune=now
后,文件.git/refs/heads/master
将被删除
如何重现?远程应用程序需要读取其文本内容(提交哈希(
.git/HEAD
内容:ref: refs/heads/master
如果该文件不存在,则不应该使用该文件:分支哈希ID现在存储在其他地方。使用git rev-parse
或git for-each-ref
可以避免依赖于分支值的存储方式。
如果你有无法修复的坏软件,那么重新创建分支文件的诀窍是当前,让Git认为分支master
已经被修改。要做到这一点,请进行提交,然后取消提交,或者使用git reset
将其重置为原来的位置;但请记住,任何今天有效的东西明天都可能开始失败。总有一天,这里不会有任何文件,所以区分大小写的分支名称可以在Windows上工作。
git gc
封装引用和对象。压缩引用存储在.git/packed-refs
中。.git
下有许多内部文件。不要直接读取这些文件。请改用git命令,如git rev-parse refs/heads/master
、git for-each-ref refs/heads/master
或git log -1 --pretty=%H refs/heads/master
。
git ls-remote <repo> refs/heads/master
是解决方案,它可以与本地和远程存储库一起使用