Це warning: remote HEAD refers to nonexistent ref, unable to checkout.означає, що віддалений (оголений) репозиторій містить посилання на гілки у файлі, який викликається HEAD, і який не відповідає жодній опублікованій гілці в тому ж сховищі.
Зверніть увагу, що попередження означає лише те, що git не здійснив оплату. В іншому випадку клоноване сховище просто чудово. Просто зробіть, git branch -aщоб побачити можливі гілки та git checkout the-branch-you-wantвирішити проблему.
Зазвичай це відбувається тому, що за замовчуванням вміст для цього файлу ( .git/HEADабо звичайний HEADдля голих сховищ) ref: refs/heads/masterговорить, що якщо хтось збирається до cloneцього сховища, він повинен за замовчуванням клонувати гілку refs/heads/master. За замовчуванням Git створить локальну гілку без refs/heads/префіксу (тобто masterза замовчуванням). Спробуйте git help symbolic-refотримати додаткову інформацію.
Проблема в цій ситуації полягає в тому, що Git не надає способу модифікації віддалених символічних посилань, тож ви використовуєте щось, що запровадив провайдер хостингу Git (наприклад, Налаштування - Гілка за замовчуванням у GitHub, якщо у вас є права адміністратора), або вам потрібно використовувати назву гілки masterяк гілка за замовчуванням (оскільки це значення за замовчуванням для цього символічного посилання).
Якщо у вас є доступ до оболонки до вашого віддаленого репозиторію git, ви можете просто вказати, cd path/to/bare/git/repo; git symbolic-ref HEAD refs/heads/XYZде XYZзнаходиться назва гілки, яку ви хочете використовувати за замовчуванням.
Один із способів вирішити цю проблему - створити нове віддалене оголене репо без комітів, а потім зробити це, git push name-of-the-remote my-special-branch-nameщо призведе до оголеного сховища, що містить одну гілку, my-special-branch-nameале HEADсимволічний посилання все ще містить значення за замовчуванням, яке вказує на master. В результаті ви отримаєте вищезазначене попередження.
git ls-remote originтобі показує?