Подтвердить что ты не робот

Git Предупреждение: удаленный HEAD ссылается на несуществующий ref, неспособный проверить

Я пытаюсь настроить gitosis в соответствии с инструкциями здесь.

Он отлично работает с моей удаленной машины, поэтому сервер, похоже, настроен нормально, но я также хотел бы иметь возможность выполнять разработку на моем сервере-сервере gitosis из другой учетной записи пользователя (а не пользователя git, созданного в gitosis).

Я скопировал ключ и модифицировал gitosis.conf, чтобы доступ к другой учетной записи пользователя, но когда я пытаюсь клонировать, он работает, но в конце он говорит:

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

и я получаю пустой каталог, за исключением .git

У меня есть Google для этого немного, но у меня нет реального понимания того, что проблема

4b9b3361

Ответ 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", он смог проверить весь контент успешно. Надеюсь, что это будет полезно.