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
Сделать
git branch -r
а такжеgit checkout -b master <remotebranchofinterest>
Проверить
HEAD
файл в удаленном.git.Проверьте, если кто-то уже задавал вопрос: здесь
Еще одной возможной причиной этого предупреждения может быть то, что 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.