Git Предупреждение: удаленный HEAD ссылается на несуществующий ref, неспособный проверить
Я пытаюсь настроить gitosis в соответствии с инструкциями здесь.
Он отлично работает с моей удаленной машины, поэтому сервер, похоже, настроен нормально, но я также хотел бы иметь возможность выполнять разработку на моем сервере-сервере gitosis из другой учетной записи пользователя (а не пользователя git, созданного в gitosis).
Я скопировал ключ и модифицировал gitosis.conf, чтобы доступ к другой учетной записи пользователя, но когда я пытаюсь клонировать, он работает, но в конце он говорит:
git Warning: remote HEAD refers to nonexistent ref, unable to checkout
и я получаю пустой каталог, за исключением .git
У меня есть Google для этого немного, но у меня нет реального понимания того, что проблема
Ответы
Ответ 1
Я узнал, что происходит не так. Проблема заключалась в том, что я не обращал внимания на предупреждения, когда я нажимал на свой сервер gitosis, поэтому я не понимал, что я не толкаю конкретную ветку. Я предположил, что это просто подтолкнет ток, но это не так, пока вы не установите:
git config push.default current
Ответ 2
-
Сделайте git branch -r
и git checkout -b master <remotebranchofinterest>
-
Проверьте файл HEAD
на удаленном .git.
-
Проверьте, не задал ли кто-нибудь вопрос: здесь
Ответ 3
Еще одной возможной причиной этого предупреждения может быть то, что ветвь master
в репозитории отсутствует (OR), репозиторий НЕ использует главную ветвь. Если это так, просто не беспокойтесь о Предупреждении!, используйте
git checkout <some_existing_branch>
Предупреждение связано с тем, что по умолчанию после того, как pull git пытается выполнить проверку в главной ветке.
Ответ 4
Была аналогичная проблема. Кажется, что при первом нажатии я сделал git push origin master:/refs/heads/master
вместо git push origin master:refs/heads/master
(обратите внимание на дополнительную косую черту). Это привело к тому, что мой мастер был помещен (в удаленном репозитории) в refs/heads/refs/heads/master
вместо refs/heads/master
. Исправление заключалось в том, чтобы реорганизовать папки на пульте дистанционного управления и повторно нажать.
Ответ 5
Держите его простым. Добавьте к авторизации gitosis и SSH ключ для учетной записи пользователя на вашем сервере и клонируйте, как обычно:
[email protected]$ git clone [email protected]:repo.git
Ответ 6
Если вы пытаетесь клонировать над http://
, обратите внимание, что вам нужен git более новый, чем 1.6.6 - в противном случае вы должны использовать URI git://
.
Ответ 7
Я использую tortoiseGit, и я не знаю, как использовать git через командную строку. Поэтому я всегда удивляюсь, как я могу избежать такой проблемы в своей черепахе. Так что, может быть, я не один. Я исправил проблему следующим образом:
- клонировать удаленное репо
- щелкните правой кнопкой мыши по корневой папке и оттуда выберите существующую ветку
В моем случае, была только ветка "dev", без мастера. Поэтому, когда я пытался клонировать, локального ветки не было, и, как только я переключился на "dev", он смог проверить весь контент успешно. Надеюсь, что это будет полезно.