以下で何を意味するかをより明確にするために、最初にいくつかの背景を説明します。コマンドは2つfetch
の部分で機能します。何か、通常は内部プログラム)。リモートで実行されるアップロード パック ステップは、「私はオブジェクトを持っています」(通常はコミットまたは注釈付きタグ) という形式の一連のオファーを作成します。git fetch
http://
git://
ssh://
git upload-pack
の代わりに実行することで、リモートが提供するものを確認できます。これは引き続き実行されますが、提供されているものを取得する代わりに、オファーを表示 (リスト) するだけです。git ls-remote
git fetch
upload-pack
ここのオファーリストに表示されているものは何でも入手できます. ここに表示されない場合は、取得できません。少なくとも、経由では取得できませんgit fetch
。を含む他のいくつかの方法ではgit archive
、未加工の SHA-1 を知っていれば、コミットにアクセスできる場合があります。
取得可能にする
あなたの説明を考えると、リモートのreflogsがオンになっているようです(通常の非裸のリポジトリです)。コミットはE
以前はいくつかのブランチ (および at HEAD
) にありましたが、リセットされて、 およびブランチの 2 つの reflog からのみアクセスできるようにHEAD
なりました。
通常、 1 つ upload-pack
のオファーHEAD
と 内のすべての参照refs
。リログは入っていないrefs
のでupload-pack
提供していません。これは、コミットを指している現在の参照がない場合、E
それは提供されないことを意味します。提供されるようにするには、リモートにログインし、 commit を指す ref を作成しますE
。
1これはある程度設定可能です。git-namespaces
および の 3 つのhideRefs
構成項目を参照してくださいgit-config
。