ここにある GitHub にリポジトリがあります。私は誰かのために作業ブランチを作成し、彼らはレポをフォークし、作業ブランチにいくつかの変更を加え、プル リクエストを送信しました。
変更を試してみたところ、すべて問題なく、GitHub がプル リクエストを自動的にマージすることを提案していたので、先に進んで大きな緑色の [Merge Pull Request] ボタンをクリックしました。作業ブランチへの変更が、私が一緒に暮らすことができるマスターブランチに適用されたことを除いて、すべてが順調でした。
問題は、私や他の誰かがリポジトリを取得できないことです。次のエラーが表示されます。
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 レポに発行することについて話しています。
次のような方法でリモート ブランチのクローンを作成できることはわかっていますがgit clone -b audiofixes git://github.com/dapphp/securimage.git
、まだ不正な参照に関するエラーが表示され、問題を解決するために実行できるコマンドがわかりません。必要に応じて、変更を元に戻します。
それが役立つ場合、別のブランチを複製すると、次の出力が得られ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