Клонируется не весь репозиторий
Почему при написании команды
git clone git://myrepo.com/project.git
у меня клонируется только одна ветка master, хотя на удаленном репозитории у меня несколько?
Ответы (2 шт):
Локально и не должны копироваться все ветки. По умолчанию вы на ветке master или main.
Можно, конечно, извлечь информацию об удалённых ветках
git fetch
и потом переключиться.
Можно просто посмотреть список удалённых веток через git branch -a
и дальше сделать checkout на нужную.
А локально отображаются только локальные ветки, что логично.
Проверьте свой .gitconfig в домашней директории, возможно там есть какие-то лишние настройки. Однако, если таких настроек нет - скорее всего, вы просто немного недопоняли произошедшее.
По умолчанию репозиторий клонируется целиком, со всеми ветками, тэгами и коммитами. Однако, локальные ветки не создаются, вместо этого удалённые ветки превращаются в так называемые remote-tracking branches (ветки отслеживания remote, т.е. удалённых репозиториев), по-русски ветки наблюдения или следящие ветки. Они находятся в отдельном пространстве имён и имеют префикс, соответствующий имени удалённого репозитория (по умолчанию origin).
Для примера допустим, что в удалённом репозитории была ветка foo, полное имя refs/heads/foo. В таком случае в локальном репозитории она станет origin/foo, полное имя refs/remotes/origin/foo.
Переключиться на такую ветку можно командой git checkout foo, но только если вы ещё не создали локальную ветку с тем же именем. Кстати, более полная форма этой команды - git checkout origin/foo -b foo.