web-dev-qa-db-ja.com

git警告:リモートHEADは存在しないrefを参照しており、チェックアウトできません

here の指示に従ってgitosisをセットアップしようとしています。

私のリモートマシンでうまく動作するので、サーバーはうまくセットアップされているようですが、別のユーザーアカウント(gitosisセットアップで作成されたgitユーザーではない)からgitosisサーバーマシンで開発を行うこともできます。

キーをコピーし、gitosis.confを変更して、他のユーザーアカウントがアクセスできるようにしましたが、クローンを作成しようとすると、最後を除いて機能するようです:

git Warning: remote HEAD refers to nonexistent ref, unable to checkout

そして、.git以外の空のディレクトリになります

私はこれについて少し調べましたが、問題が何であるかについての本当の洞察力はありません

39
srboisvert

何がおかしいのかがわかりました。問題は、gitosisサーバーにプッシュするときに警告に注意を払わなかったため、特定のブランチをプッシュしていないことに気づかなかったことです。私はそれが単に電流をプッシュすると仮定していましたが、それはあなたが設定するまでそうではありません:

git config Push.default current
25
srboisvert
  1. git branch -rおよびgit checkout -b master <remotebranchofinterest>

  2. リモート.gitのHEADファイルを確認します。

  3. 誰かがすでに質問をしているかどうかを確認します。 here

この警告のもう1つの考えられる原因は、リポジトリ内のmasterブランチが見つからない(または)リポジトリがmasterブランチを使用していないことです。この場合、警告を心配しないでください!

git checkout <some_existing_branch>

警告は、デフォルトでは、プルgitがmasterブランチへのチェックアウトを試行した後です。

18
Boopathi Rajaa

同様の問題がありました。最初のプッシュで、git Push Origin master:/refs/heads/masterの代わりにgit Push Origin master:refs/heads/masterを実行したようです(余分なスラッシュに注意してください)。これにより、マスターが(リモートリポジトリに)refs/heads/refs/heads/masterではなくrefs/heads/masterに配置されました。修正は、リモートのフォルダーを再編成し、再プッシュすることでした。

2
Cristian Vrabie

複雑にしないでおく。サーバーのユーザーアカウントのgitosis承認とSSHキーに追加し、通常どおりにクローンを作成します。

user@server$ git clone git@server:repo.git
1
Greg Bacon

http://でクローンを作成しようとしている場合は、1.6.6よりも新しいgitが必要であることに注意してください。そうでない場合は、git://ベースのURIを使用する必要があります。

0
EvdB

私はtortoiseGitを使用していますが、コマンドライン経由でgitを使用する方法を知りません。だから私はいつも私のカメでそのような問題を回避する方法を疑問に思います。だから多分私は一人ではありません。この方法で問題を修正しました。

  • リモートリポジトリのクローンを作成する
  • ルートフォルダを右クリックして、そこから既存のブランチを選択します

私の場合、マスターのないブランチ「dev」しかありませんでした。そのため、クローンを作成しようとしたときに、チェックアウトするローカルブランチがなく、「dev」に切り替えるとすぐに、すべてのコンテンツを正常にチェックアウトできました。お役に立てば幸いです。

0
Dmitry O