Начните отсюда

Клонирование

Новый репозиторий → Клонировать или ⌘K → Клонировать. Вставьте URL — либо войдите в GitHub, GitLab, Bitbucket или Azure DevOps и выберите из собственных репозиториев: токен выбранного профиля используется для клонирования и затем отбрасывается, в .git/config он не попадает никогда.

Выберите родительскую папку и имя; строка под полями показывает, куда именно ляжет репозиторий. Уже существующая папка будет отвергнута, а не дополнена.

Дополнительно — как сузить клон

Всё под пунктом Дополнительно по умолчанию выключено: не трогайте его — и получите обычный полный клон. Своё место эти настройки оправдывают на репозиториях, где «полный» означает двадцать минут и несколько гигабайт.

Диалог клонирования с раскрытым разделом «Дополнительно»: частичный, поверхностный, одна ветка, сабмодули и выбор ветки

Параметр Что делает git Чего это стоит
Частичный клон --filter=blob:none Вся история, без содержимого файлов. Блобы приходят по требованию, так что для открытия старого файла нужна сеть.
Поверхностный клон --depth=N Существуют только N новейших коммитов. Blame, log, bisect и range-diff обрываются на срезе.
Только одна ветка --single-branch Остальные ветки остаются на удалённом репозитории, пока вы их не зафетчите.
Клонировать сабмодули --recurse-submodules Каждый сабмодуль тоже выгружается — больше времени сейчас, никаких пропавших каталогов потом.
Ветка для переключения --branch <name> Начинает с этой ветки, а не с ветки по умолчанию на удалённом репозитории.

Частичный раньше поверхностного. Частичный клон сохраняет все коммиты — история остаётся доступной для поиска, лениво подтягивается только содержимое файлов. Поверхностный клон историю действительно выбрасывает: git log обрывается на срезе, и blame не видит дальше него. Если вы клонируете монорепо, чтобы в нём работать, обычно вам нужен частичный.

Поверхностный обратим: git fetch --unshallow в терминале дозаполняет историю обратно.

Выбор ветки

Введите имя ветки или нажмите Показать ветки, чтобы спросить у удалённого репозитория, что у него есть (git ls-remote --heads), и выбрать из списка. Это один сетевой запрос, выполняемый только по нажатию кнопки, — пока вы печатаете, ничего не запрашивается.

Если получить список не удалось — приватный URL без токена, опечатка, нет сети, — поле остаётся обычным текстовым, а само клонирование сообщит настоящую ошибку.

Две заметки о флагах

  • --depth подразумевает --single-branch. При поверхностном клоне снятый флажок Только одна ветка — это и есть просьба вернуть остальные ветки (--no-single-branch), поэтому подсказка под ним меняется.
  • При клонировании локальной папки --depth обычно игнорируется целиком, потому что git делает жёсткие ссылки на хранилище объектов вместо загрузки. Когда вы просите поверхностную копию локального репозитория, Gitcito клонирует через URL вида file://, так что запрошенная глубина — это та глубина, которую вы получите.

Прогресс

Полоса сообщает то, что сообщает git: подсчёт, сжатие, приём, разрешение, выгрузка. Этап, который не может сообщить общий объём, показывает неопределённую полосу, а не выдуманный процент.

Новый репозиторий открывается во вкладке, закреплённой за профилем, с которым вы клонировали.

Улучшить этот перевод на GitHub