git Предупреждение: удаленный заголовок относится к несуществующей ссылке, не может оформить заказ

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

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

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

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

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

Я немного погуглил, но не имею никакого представления о том, в чем проблема

7 ответов

Решение

Я узнал, что происходит не так. Проблема заключалась в том, что я не обращал внимания на предупреждения, когда я нажимал на свой сервер gitosis, поэтому я не осознавал, что не нажимаю на конкретную ветку. Я предполагал, что это просто подтолкнет ток, но это не так, пока вы не установите:

git config push.default current
  1. Сделать git branch -r а также git checkout -b master <remotebranchofinterest>

  2. Проверить HEAD файл в удаленном.git.

  3. Проверьте, если кто-то уже задавал вопрос: здесь

Еще одной возможной причиной этого предупреждения может быть то, что master ветка в хранилище отсутствует (ИЛИ) хранилище НЕ использует основную ветку. Если это так, просто не беспокойтесь о предупреждении!, используйте

git checkout <some_existing_branch>

Предупреждение заключается в том, что по умолчанию после pull git пытается выполнить возврат в главную ветку.

Была похожая проблема. Кажется, что на моем первом толчке я сделал 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

Я использую tortoiseGit, и я не знаю, как использовать git через командную строку. Поэтому мне всегда интересно, как я могу избежать такой проблемы в моей черепахе. Так что, возможно, я не одинок. Я исправил проблему следующим образом:

  • клонировать удаленное репо
  • щелкните правой кнопкой мыши на корневой папке и выберите существующую ветку.

В моём случае была только ветка "dev", без хозяина. Поэтому, когда я пытался клонировать, не было локальной ветки для проверки, и как только я переключился на "dev", он смог успешно проверить весь контент. Надеюсь, что это будет полезно.

Если вы пытаетесь клонировать http:// обратите внимание, что вам нужен Git новее, чем 1.6.6 - в противном случае вы должны использовать git:// на основе URI.

Другие вопросы по тегам