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

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

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

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

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

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

Я немного погуглил, но не понимаю, в чем проблема

Ответы [ 7 ]

25 голосов
/ 26 декабря 2009

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

git config push.default current
21 голосов
/ 25 декабря 2009
  1. У git branch -r и git checkout -b master <remotebranchofinterest>

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

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

18 голосов
/ 21 августа 2012

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

git checkout <some_existing_branch>

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

2 голосов
/ 01 июля 2011

Была похожая проблема. Кажется, что при первом нажатии я набрал git push origin master:/refs/heads/master вместо git push origin master:refs/heads/master (обратите внимание на дополнительный слеш). Это привело к тому, что мой мастер был помещен (в удаленном хранилище) в refs/heads/refs/heads/master вместо refs/heads/master. Исправление состояло в том, чтобы реорганизовать папки на удаленном компьютере и повторно нажать.

1 голос
/ 25 декабря 2009

Будьте проще. Добавьте к авторизации на gitosis и ключ SSH для учетной записи на вашем сервере и клонируйте как обычно:

user@server$ git clone git@server:repo.git
0 голосов
/ 18 сентября 2013

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

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

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

0 голосов
/ 27 марта 2012

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

...