git clone: скопировать чужой репозиторий
Обновлено 31 июля 2026 г.
git clone забирает готовый репозиторий целиком: всю историю, все ветки и файлы последнего коммита.
Это первая команда, которую выполняешь, когда подключаешься к чужому проекту или переносишь свой на новый компьютер. Достаточно адреса, который на странице репозитория прячется за кнопкой «Code»:
$ git clone https://github.com/username/some-project.git
Cloning into 'some-project'...
remote: Enumerating objects: 128, done.
remote: Total 128 (delta 40), reused 118 (delta 30), pack-reused 0
Receiving objects: 100% (128/128), 24.31 KiB | 4.86 MiB/s, done.
Resolving deltas: 100% (40/40), done.Одна команда делает три дела разом. Скачивает историю - все коммиты за все годы, а не только последнее состояние. Создаёт папку с именем проекта и раскладывает в ней файлы последнего коммита. Прописывает адрес сервера под именем origin, так что git push и git pull заработают без дополнительной настройки.
$ cd some-project
$ git remote -v
origin https://github.com/username/some-project.git (fetch)
origin https://github.com/username/some-project.git (push)Своё имя папки
Второй аргумент задаёт имя каталога, который создастся:
$ git clone https://github.com/username/some-project.git my-copyТочка вместо имени клонирует прямо в текущий каталог, но он должен быть пустым.
Неглубокий клон
У больших проектов история весит больше, чем сами файлы. Флаг --depth 1 берёт только последний коммит:
$ git clone --depth 1 https://github.com/git/git.git
$ cd git
$ git log --oneline | wc -l
1В такой копии исходников самого git каталог .git весит 14 МБ: скачался один коммит, а не двадцать лет разработки. Годится, чтобы посмотреть код или собрать проект. Для работы над ним - нет: истории в неглубоком клоне нет, git log покажет один коммит, а часть команд откажется работать.
Частые ошибки
git init после git clone не нужен: склонированная папка уже репозиторий, .git в ней есть. Лишний init истории не сотрёт, но в голове порядка не добавит.
Клонировать в непустую папку git не станет:
$ git clone https://github.com/username/some-project.git ne
fatal: destination path 'ne' already exists and is not an empty directory.Дай другое имя каталога или очисти существующий. Ещё одна ловушка - клонировать один проект внутрь другого репозитория: снаружи получится вложенный репозиторий, который внешний не отслеживает.
Где это в учебнике
Тема разобрана здесь: Глава 6. GitHub: облако и совместная работа.
Потренироваться руками - в Песочнице: настоящий терминал с git и проверка шагов.