我在 GitHub 上有一个存储库,位于此处。我为某人创建了一个工作分支,他们分叉了 repo,对工作分支进行了一些更改并提交了一个拉取请求。
我尝试了更改,一切都很好,由于 GitHub 提供自动合并拉取请求,我继续点击绿色的大“合并拉取请求”按钮。除了对工作分支的更改应用于我可以忍受的主分支之外,一切都很好。
现在的问题是我或其他任何人都无法获取存储库。我收到此错误:
dp@dpub:/tmp/gh$ git clone git://github.com/dapphp/securimage.git
Initialized empty Git repository in /tmp/gh/securimage/.git/
remote: Counting objects: 333, done.
remote: Compressing objects: 100% (269/269), done.
remote: Total 333 (delta 91), reused 297 (delta 55)
Receiving objects: 100% (333/333), 3.91 MiB | 2.78 MiB/s, done.
Resolving deltas: 100% (91/91), done.
error: refs/remotes/origin/master does not point to a valid object!
error: Trying to write ref refs/heads/master with nonexistant object 31d684d383913c4cf1a0d5ff0691c2c163284a35
fatal: Cannot update the ref 'HEAD'.
这导致没有创建目录或下载任何工作文件。我已经到处寻找可能的方法来解决这个问题,但大多数人都在谈论向 git repo 发出命令,这是我无法做到的,因为我一开始就无法获得 repo 的副本。
我发现我仍然可以使用这样的方法克隆远程分支:git clone -b audiofixes git://github.com/dapphp/securimage.git
但我仍然收到有关错误 ref 的错误,并且我无法找出可以运行的任何命令来解决问题。如有必要,我愿意撤消更改。
如果它有帮助,一旦我克隆了一个不同的分支,这里是输出git branch -a
:
* audiofixes
remotes/origin/2.0.2
remotes/origin/3.0
remotes/origin/HEAD -> origin/master
remotes/origin/audiofixes
remotes/origin/securimage_flash
在这一点上,我真的不知道我能做些什么(如果有的话)来修复存储库的状态。
感谢您的任何建议。
编辑:按要求输出一些命令。
$ ls .git/refs/remotes/origin
HEAD
$ ls .git/objects
info/ pack/
# info is empty, pack has pack-b8add06e9a6864ea44a58c06b8bd549eedd90c94.idx and pack-b8add06e9a6864ea44a58c06b8bd549eedd90c94.pack
$ cat .git/refs/remotes/origin/master
cat: .git/refs/remotes/origin/master: No such file or directory
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master