предупреждение: удаленная головка ссылается на несуществующий ref, неспособный к проверке



это похоже на популярную ошибку по разным причинам.



у меня есть простой голый git РЕПО под названием "kiflea.git", я клонирую его так:



git clone git://kipdola.be/kiflea.git


затем git говорит мне: warning: remote HEAD refers to nonexistent ref, unable to checkout.



и да, нет никаких версионных файлов на карте, за исключением .каталог git.
В любом случае, единственное, что мне нужно сделать, это:



cd kiflea
git checkout master


и это работает, все файлы на месте.
Но я думал, что клонирование РЕПО автоматически проверяет мастер, так что же происходит и как это исправить?



Я заметил, что после того, как я делаю git checkout master бит, это добавляется в мой локальный .файл git файл config:



[branch "master"]
remote = origin
merge = refs/heads/master


вероятно, интересно знать, что этот репозиторий git раньше был репозиторием svn в далеком прошлом.



Ps: при просмотре голого репозитория с помощью gitweb, там явно есть master ветка там:http://kipdola.be/gitweb/?p=kiflea.git;a=резюме

997   8  
git

8 ответов:

The warning: remote HEAD refers to nonexistent ref, unable to checkout. означает, что удаленный (голый) репозиторий содержит ссылку на ветку в файле HEAD это не соответствует ни одной опубликованной ветви в том же репозитории.

обратите внимание, что предупреждение означает только то, что git не выполнил проверку. клонированный репозиторий, в противном случае просто отлично. Просто сделай git branch -a чтобы увидеть возможные ветви и git checkout the-branch-you-want чтобы обойти эту проблему.

обычно это происходит потому, что содержание по умолчанию для этого файла (.git/HEAD или просто HEAD для голых репозиториев) is ref: refs/heads/master он говорит, что если кто-то собирается clone этот репозиторий, они должны по умолчанию клонировать ветку refs/heads/master. По умолчанию Git создаст локальную ветку без refs/heads/ префиксом (то есть master по умолчанию). Попробуй git help symbolic-ref для получения дополнительной информации.

проблема этой ситуации заключается в том, что Git не предоставляет метод для изменения remote символические ссылки, так что либо вы используете что-то 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. В результате вы получите вышеупомянутое предупреждение.

у меня была та же проблема, потому что я не был с помощью master ветка, и она потерялась как в моем локальном, так и в удаленном репозитории.

удаленный репозиторий все еще имел HEAD значение master, Я изменил его на одну из удаленных ветвей, которые я фактически использую, и все работает нормально.

если вы можете получить доступ к удаленному репозиторию:

  • иди к своему remote_repo.git;
  • Edit HEAD file
  • изменить ref: refs/heads/master to ref: refs/heads/your_branch

Да это связано с тем, что ваш клон git пытается проверить ветку, отличную от master. Просто сделай это

git clone user@git-server:project_name.git -b branch_name /some/folder

Это поможет вам клонировать точную ветвь через ее имя ветви.

несмотря на то, что эта ошибка была отображена - мой проект все еще был подключен к соответствующему репозиторию - я запустил команду "git branch" и увидел соответствующие ветви - затем я запустил "git checkout *branchname" и BOOM - все было хорошо.

там определенно что-то не так с вашим удаленным репозиторием. Возможно, вы сможете исправить это, создав новый клон репозитория. Также может сработать нажатие новой фиксации в главной ветви.

Я бы предположил, что это ведущий * в журнале фиксации, который каким-то образом обманывает удаленный сервер.

Я могу просматривать веб-интерфейс РЕПО, используя некоторые ссылки меню, но другие не работают с 404 - Unknown commit object или аналогичный, особенно со страницы резюме.

смотрите, если вы можете изменить это последнее сообщение фиксации, а затем принудительно нажмите Обновление, чтобы увидеть, если это исправляет его. Там может быть ошибка в Демоне сервера. Если он это исправит, то стоит сообщить об этом git list [email protected] (только текстовые сообщения)

Если на самом деле нет главной ветви, проверьте следующее; Если есть файл с именем 'packed-refs' внутри '.git ' папка, откройте ее, и вы можете найти все ссылки в списке.

что-то вроде ниже;

# pack-refs with: peeled fully-peeled 
e7cc58650190bd28599d81917f1706445d3c6d8b refs/tags/afw-test-harness-1.5
^cfae4f034e82591afdf4e5ed72279297d0eee618
6afe1bcfa4bd74de8e0c8f64d024e1cc289206df refs/tags/afw-test-harness-2.1
^c32f7fa495d4b44652f46c065fcd19c3acd237a6
72f2e4284dfbf27c82967da096c6664646bbdd19 refs/tags/android-1.6_r1
^50992e805e758e2231f28ec2127b57a1a9fd0ddc
0cbd528cad1cee9556098b62add993fc3b5dcc33 refs/tags/android-1.6_r1.1

затем использовать;

git checkout refs/tags/xxxx

или

git checkout 'HASH value'

для оформления заказа требуемой версии. Спасибо.

у меня была такая же проблема при создании голого РЕПО.

Я решил это просто клонирование РЕПО, создав локальную главную ветвь, а затем нажав master на удаленное РЕПО.

1) клонировать РЕПО

$ git.exe clone --progress -v "the remote path" "my local path"

2) Создайте главную ветвь локально.

   $ git checkout -b master

3) совершить что-то в местном отделении

$ git add readme.md 
$ git commit –m “Added readme”

4) Нажмите local master на пульте дистанционного управления

   $ git push origin master

Comments

    Ничего не найдено.