here の指示に従ってgitosisをセットアップしようとしています。
私のリモートマシンでうまく動作するので、サーバーはうまくセットアップされているようですが、別のユーザーアカウント(gitosisセットアップで作成されたgitユーザーではない)からgitosisサーバーマシンで開発を行うこともできます。
キーをコピーし、gitosis.confを変更して、他のユーザーアカウントがアクセスできるようにしましたが、クローンを作成しようとすると、最後を除いて機能するようです:
git Warning: remote HEAD refers to nonexistent ref, unable to checkout
そして、.git以外の空のディレクトリになります
私はこれについて少し調べましたが、問題が何であるかについての本当の洞察力はありません
何がおかしいのかがわかりました。問題は、gitosisサーバーにプッシュするときに警告に注意を払わなかったため、特定のブランチをプッシュしていないことに気づかなかったことです。私はそれが単に電流をプッシュすると仮定していましたが、それはあなたが設定するまでそうではありません:
git config Push.default current
git branch -r
およびgit checkout -b master <remotebranchofinterest>
リモート.gitのHEAD
ファイルを確認します。
誰かがすでに質問をしているかどうかを確認します。 here
この警告のもう1つの考えられる原因は、リポジトリ内のmaster
ブランチが見つからない(または)リポジトリがmasterブランチを使用していないことです。この場合、警告を心配しないでください!
git checkout <some_existing_branch>
警告は、デフォルトでは、プルgitがmasterブランチへのチェックアウトを試行した後です。
同様の問題がありました。最初のプッシュで、git Push Origin master:/refs/heads/master
の代わりにgit Push Origin master:refs/heads/master
を実行したようです(余分なスラッシュに注意してください)。これにより、マスターが(リモートリポジトリに)refs/heads/refs/heads/master
ではなくrefs/heads/master
に配置されました。修正は、リモートのフォルダーを再編成し、再プッシュすることでした。
複雑にしないでおく。サーバーのユーザーアカウントのgitosis承認とSSHキーに追加し、通常どおりにクローンを作成します。
user@server$ git clone git@server:repo.git
http://
でクローンを作成しようとしている場合は、1.6.6よりも新しいgitが必要であることに注意してください。そうでない場合は、git://
ベースのURIを使用する必要があります。
私はtortoiseGitを使用していますが、コマンドライン経由でgitを使用する方法を知りません。だから私はいつも私のカメでそのような問題を回避する方法を疑問に思います。だから多分私は一人ではありません。この方法で問題を修正しました。
私の場合、マスターのないブランチ「dev」しかありませんでした。そのため、クローンを作成しようとしたときに、チェックアウトするローカルブランチがなく、「dev」に切り替えるとすぐに、すべてのコンテンツを正常にチェックアウトできました。お役に立てば幸いです。