2010-03-09 4 views
5

Я новичок в Git, поэтому я подозреваю, что я что-то не понимаю, но я все равно спрошу.Git remote имеет master, но нет HEAD

Via TortoiseGit Я делаю следующее:

  • Init новый Git репозиторий локально
  • Добавить файл ReadME к нему и совершить
  • Добавить новый удаленный
  • Вставьте новый репозиторий в orgin (дистанционный)

Если бы я тогда Обзор Refs я вижу следующее:
головки/мастер
перепятнышек/происхождение/мастер

Что я нахожу странным, что я не вижу ГОЛОВА на пультах.

Если я удалить свой локальный репозиторий, а затем клонировать его с сервера (я просто толкнул выше), а затем просмотреть реф я вижу:
голов/мастер
пультов Д/происхождения/HEAD
пульты ДУ/origin/master

Так почему же я не вижу пульт дистанционного управления после первого нажатия?

NB. Я сделал то же самое с помощью команды Git Bash (т. Е. Не Tortoise Git), и вижу то же самое.

ответ

0

Это потому, что вы не тянете свой репозиторий. Когда вы нажимаете, вы обновляете ref remote/origin/master, но не HEAD, потому что это может быть другое commit. Если вы потянете, когда придет ГОЛОВА.

Это идет с вашим клоном после. Fetch all refs from remote, как HEAD, и мастер

+0

Я не совсем уверен, что понимаю - вы говорите, что после того, как я сделал начальный толчок на пульте дистанционного управления, если я тогда сделаю Pull и/или Fetch, я должен получить HEAD? Потому что я пробовал это, а я нет. – dwynne

3

Это потому, что HEAD не является удаленной ссылкой, которую вы также должны нажимать, это просто ссылка на фиксацию, на которую указывает HEAD удаленного репозитория. Этот репозиторий на сервере, очевидно, имеет рабочее дерево и не создается с помощью команды git init -bare. Я предполагаю, что Tortoise Git просто игнорирует его, потому что некоторые правила в программном обеспечении. Звучит странно, что git не смог отобразить его.

Смежные вопросы