Как клонировать репозиторий
$ git clone https://github.com/ivan/todo.git
Cloning into 'todo'...
$ cd todoАдрес берут на странице проекта — обычно под кнопкой Code или Clone. Git создаёт папку с именем проекта (todo), скачивает в неё все файлы и всю историю и настраивает origin — связь с сервером. После этого можно сразу работать: git log, git pull, а при наличии прав — git push.
В свою папку
Второй параметр — имя папки:
git clone https://github.com/ivan/todo.git my-todoТочка вместо имени клонирует в текущую папку — только если она пустая:
git clone https://github.com/ivan/todo.git .HTTPS или SSH
https://github.com/ivan/todo.git— подходит всем. Открытые репозитории клонируются без входа, для закрытых и для отправки понадобится вход (токен или окно входа Git Credential Manager).git@github.com:ivan/todo.git— по SSH-ключу, без ввода пароля. Как настроить — в справке Как добавить SSH-ключ для GitHub.
Адрес можно поменять и после клонирования: git remote set-url origin новый-адрес.
Одна ветка или без истории
| Задача | Команда |
|---|---|
Сразу оказаться на ветке dev | git clone -b dev адрес |
| Только последнее состояние, без истории | git clone --depth 1 адрес |
| Только одна ветка, без остальных | git clone --single-branch -b dev адрес |
--depth 1 скачивает быстрее и занимает меньше места — удобно, если проект нужен только собрать или посмотреть. Историю такого клона можно докачать позже командой git fetch --unshallow.
Скачать без Git
На странице проекта обычно есть пункт «Download ZIP» — архив с файлами текущей версии. Это не репозиторий: истории и связи с сервером в нём нет, и git pull там не работает. Чтобы получать обновления, нужен git clone.
Частые ошибки
fatal: destination path 'todo' already exists and is not an empty directory.— папка с таким именем уже есть. Клонируйте в другую папку (второй параметр) или перейдите в существующую — возможно, это тот же проект, и достаточноgit pull.Repository not foundилиAuthentication failed— ошибка в адресе, репозиторий закрытый, или вход не удался. Проверьте адрес на странице проекта и свою учётную запись.Permission denied (publickey)— при клонировании по SSH сервер не принял ключ, см. Permission denied (publickey).fatal: not a git repositoryсразу после клонирования — вы не зашли в созданную папку:cd todo.
Чужой код после клонирования не запускайте вслепую: скрипты сборки и установки выполняются с вашими правами. Сначала посмотрите, что за проект и кто автор, особенно если ссылку прислали незнакомые люди.