-
-l
-
--local
-
Когда репозиторий с которого производится клонирование находится на локальной машине, этот флаг позволяет обойти обычный «осведомлённый о Git» транспортный механизм и клонирует репозиторий напрямую: просто копируя
HEAD
и всё, что находится в каталогахobjects
иrefs
. По возможности, для файлов в каталоге.git/objects/
будут использоваться жёсткие ссылки, дабы сохранить дисковое пространство.Если в качестве репозитория задан локальный путь (например,
/путь/к/репо
), то это является поведением по умолчанию, и--local
, по сути, ничего не делает. Если в качестве репозитория задан URL, то этот флаг игнорируется (и мы никогда не используем локальные оптимизации в таких случаях). Параметр--no-local
позволяет переопределить поведение по умолчанию: и при передаче локальных путей (вроде/путь/к/репо
), будет использоваться обычный транспорт Git.Если в
$GIT_DIR/objects
в репозитории есть символические ссылки или сам является символической ссылкой, то клонирование завершится ошибкой. Это сделано ради безопасности, чтобы предотвратить непреднамеренное копирование файлов при разыменовании этих ссылок.Данный параметр не работает с репозиториями, принадлежащими другим пользователям по соображениям безопасности, так что, чтобы клонирование завершилось успешно, нужно будет указать
--no-local
.ПРИМЕЧАНИЕ: при выполнении данной операции может возникнуть состояние гонки с параллельными модификациями в исходном репозитории, аналогично тому, как это может происходить при выполнении
cp -r <источник> <назначение>
одновременно с изменениями в <источнике>. -
--no-hardlinks
-
При клонировании из репозитория на локальной файловой системе, принудительно использовать копирование для файлов в каталоге
.git/objects
, а не жёсткие ссылки. Это может быть желательно, если вы пытаетесь сделать резервную копию вашего репозитория. -
-s
-
--shared
-
Когда клонируемый репозиторий находится на локальной машине, вместо использования жёстких ссылок, автоматически настроить
.git/objects/info/alternates
для совместного использования объектов с исходным репозиторием. Изначально в полученном репозитории не будет ни каких собственных объектов.ПРИМЕЧАНИЕ: это может быть опасной операцией; не используйте её, если вы не понимаете, что она делает. Если вы клонируете свой репозиторий, используя этот параметр, а затем удаляете ветки (или используете любые другие команды Git, которые могут привести к удалению всех ссылок на какие-либо существующие коммиты) в исходном репозитории, то некоторые объекты могут стать изолированными (или болтающимися). Эти объекты могут быть удалены в результате обычных операций Git (таких как
git commit
), которые автоматически вызываютgit maintenance run --auto
(см. git-maintenance[1]). Если эти объекты будут удалены и на них останутся ссылки в клонированном репозиторий, то клонированный репозиторий будет испорчен.Обратите внимание, что при запуске
git repack
без параметра--local
в репозитории, клонированном с--shared
, разделяемые объекты из исходного репозитория будут скопированы в pack-файлы клонированного репозитория, из-за чего экономия дискового пространства отclone --shared
будет потеряна. Однако, запускатьgit gc
, который использует параметр--local
по умолчанию, — безопасно.Если вы хотите избавиться от зависимостей репозитория, клонированного с
--shared
, от его исходного репозитория, вы можете просто запуститьgit repack -a
, который скопирует все объекты из исходного репозитория в pack-файлы клонированного. -
--reference[-if-able] <репозиторий>
-
Если <репозиторий> (заданный как аргумент параметра) находится на локальной машине, автоматически настроить
.git/objects/info/alternates
для получения объектов из этого <репозитория>. Использование уже существующего репозиторий как дополнительного потребует копирования меньшего количества объектов из клонируемого репозитория, что уменьшит сетевой трафик и локальные затраты на хранение. С--reference-if-able
, если каталог <репозитория> не существует, то это вызовет предупреждением, а не ошибку, и клонирование не будет из-за этого прервано.ПРИМЕЧАНИЕ: см. ПРИМЕЧАНИЕ для параметра
--shared
, а также описание параметра--dissociate
. -
--dissociate
-
Заимствовать объекты из дополнительных репозиториев, заданных в параметрах
--reference
для того, чтобы уменьшить использование сетевого трафика, и прекратить совместное использование объектов после того, как клонирование будет закончено, скопировав все необходимые объекты в клонированный репозиторий. Этот параметр также может использован при клонировании из локального репозитория, у которого уже есть свой дополнительный репозиторий. В таком случае в новый репозиторий будут скопированы объекты из дополнительного, так что этот параметр можно использовать для создания копии репозитория, которая более не зависит от дополнительных репозиториев. -
-q
-
--quiet
-
Тихий режим. Не выводить информацию о ходе выполнения в стандартный поток ошибок.
-
-v
-
--verbose
-
Включение подробного режима. Не влияет на вывод информацию о ходе выполнения в стандартный поток ошибок.
-
--progress
-
По умолчанию информация о ходе выполнения выводится в стандартный поток ошибок, когда он привязан к терминалу, если только не задан параметр
--quiet
. Данный флаг принудительно включает вывод этой информации даже если стандартный поток ошибок направлен не в терминал. -
--server-option=<параметры>
-
Передать данную строку на сервер при обмене данными по протоколу версии 2. Данная строка не должна содержать символы NUL или LF. То как сервер будет обрабатывать эти параметры, в том числе неизвестные, зависит только от сервера. Если параметр
--server-option=<параметры>
указан несколько раз, то все эти строки будут отправлены другой стороне в том порядке, в котором они указанном в командной строке. Если в командной строке параметр--server-option=
<параметры> не задан ни разу, то вместо этого будет использовано значения переменной конфигурацииremote.<имя>.serverOption
. -
-n
-
--no-checkout
-
После завершения клонирования, переход на какую-либо ветку не производится и указатель
HEAD
не устанавливается. -
--
[no-
]reject-shallow
-
Завершиться с ошибкой, если репозиторий, из которого происходит клонирование, является частичным. Для указания значения по умолчанию можно использовать переменную конфигурации
clone.rejectShallow
. -
--bare
-
Создать голый («bare») репозиторий Git. То есть вместо создания <каталога> и размещения административных файлов в
<каталог>/.git
, использовать сам <каталог> в качестве$GIT_DIR
. Это, очевидно, подразумевает--no-checkout
, потому что нет подходящего места для размещения рабочей копии. Кроме того, головы веток внешнего репозитория копируются непосредственно в соответствующие им локальные головы веток, без отображений вrefs/remotes/origin/
. При использовании этого параметра не создаются ни отслеживаемые внешние ветви, ни связанные с ними переменные конфигурации. -
--sparse
-
Задействовать режим разреженного состояния, изначально извлекая файлы только в каталоге верхнего уровня. Для расширения рабочего каталога по мере необходимости, можно использовать команду git-sparse-checkout[1].
-
--filter=<спецификатор-фильтра>
-
Использовать функцию неполного клонирования и попросить сервер отправлять только подмножество достижимых объектов, удовлетворяющих заданной <спецификатору-фильтра>. При использовании
--filter
указанный <спецификатор-фильтра> используется в качестве фильтра неполного клонирования. Например,--filter=blob:none
отфильтрует все blob-объекты (содержимое файлов), пока они не понадобятся Git. А, например,--filter=blob:limit=<размер>
отфильтрует все blob-объекты объёмом не меньше <размера>. Дополнительные сведения о спецификаторах фильтра см. в описании параметра--filter
команды git-rev-list[1]. -
--also-filter-submodules
-
Также применять фильтр неполного клонирования ко всем подмодулям в репозитории. Требует указания
--filter
и--recurse-submodules
. Данный параметр может быть включён по умолчанию с помощью переменной конфигурацииclone.filterSubmodules
. -
--mirror
-
Создать зеркало исходного репозитория. Это подразумевает
--bare
. В сравнении с--bare
,--mirror
не только переносит локальные ветки источника на локальные ветки цели, но он также переносит и все другие ссылки (включая отслеживаемые внешние ветки, заметки и т.д.) и устанавливает спецификаторы ссылок таким образом, чтобы все эти ссылки были перезаписаныgit remote update
в целевом репозитории. -
-o
<имя> -
--origin
<имя> -
Вместо имени
origin
для вышестоящего репозитория, использовать <имя> в качестве имени удалённого источника. Это переопределяет значение заданное в переменной конфигурацииclone.defaultRemoteName
. -
-b
<имя> -
--branch
<имя> -
Вместо того, чтобы вновь созданный
HEAD
указывал, на ту же ветку, на которую указываетHEAD
клонировуемого репозитория, направить его на ветку с указанным <именем>. Репозиторий (не являющийся голым) будет также переключен на эту ветку. Параметр--branch
также принимает <имена> меток; в таком случае после клонирования полученный репозиторий будет находится в состоянии с отсоединённым указателемHEAD
. -
--revision=<редакция>
-
Создать новый репозиторий и извлечь (fetch) историю, ведущую к указанной <редакции> (и ничего кроме этого), не создавая отслеживаемую внешнюю ветку и не создавая локальную ветку, и перевести репозиторий в состояние отсоединённого
HEAD
, указывающего на <редакцию>. Аргумент может быть именем ссылки (например,refs/heads/main
илиrefs/tags/v1.0
), которая рекурсивно разыменовывается до коммита, или шестнадцатеричного имени объекта. Этот параметр несовместим с--branch
и--mirror
. -
-u
<upload-pack> -
--upload-pack
<upload-pack> -
При доступе к клонируемому репозиторию по ssh, этот параметр задаёт путь (отличный от пути по умолчанию) к команде
git-upload-pack
, которая будет запускаться на удалённом конце. -
--template=<каталог-шаблонов>
-
Задаёт каталог с шаблонами. (См. раздел «КАТАЛОГ ШАБЛОНОВ» в git-init[1])
-
-c
<ключ>=<значение>
-
--config
<ключ>=<значение>
-
Устанавливает переменную конфигурации во вновь созданном репозитории; эта переменная устанавливается сразу после инициализации репозитория, но до того, как будет получена внешняя история или будут извлечены какие-либо файлы. <ключ> должен быть в том же формате, что и для git-config[1] (например,
core.eol=true
). Если для одного и того же <ключа> даны несколько <значений>, каждое значение будет записано в файл конфигурации. Так что это позволяет, например, добавить дополнительные спецификаторы ссылок, которые должны быть извлечены из внешнего источнику origin.Из-за ограничений текущей реализации, некоторые переменные конфигурации не вступают в силу до тех пор, пока не будут произведены первоначальные загрузка и извлечение состояния. В частности это относится к таким переменным конфигурации, как
remote.<имя>.mirror' и `remote.<имя>.tagOpt
. Вместо них следует использовать соответственно параметры--mirror
и--no-tags
. -
--depth <глубина>
-
Создаёт «частичный» (shallow) клон с историей, усечённой до указанного количество коммитов. Ясли явно не передано
--no-single-branch
(что приведёт к загрузке последней истории всех ветвей), то данный параметр подразумевает--single-branch
. Если вы хотите, чтобы подмодули тоже клонировались частично, то передайте также--shallow-submodules
. -
--shallow-since=<дата>
-
Создать частичный клон с историей начиная с указанной <даты>.
-
--shallow-exclude=<ссылка>
-
Создать частичный клон с историей, в которую не будут включены коммиты, достижимые из указанной внешней ветки или метки. Этот параметр может быть задан несколько раз.
-
--[no-]single-branch
-
Клонировать только историю, ведущую к верхушке одной конкретной ветки (либо заданной параметром
--branch
, либо той, на которую указываетHEAD
внешнего репозитория). Дальнейшие вызовыfetch
в полученном репозитории будут обновлять отслеживаемую внешнюю ветку только для этой самой ветки, которая была создана при изначальном клонировании репозитория с данным параметром. Если во время клонирования с--single-branch
HEAD
во внешнем репозитории не указывает ни на одну ветку, то ни одной отслеживаемой внешней ветки создано не будет. -
--[no-]tags
-
Определяет, будут ли клонироваться теги. При использовании
--no-tags
, это поведение будет сохранено с помощью установки переменной конфигурацииremote.<имя>.tagOpt=--no-tags
, что гарантирует, что будущие операцииgit pull
иgit fetch
не будут отслеживать какие-либо метки. Однако в дальнейшем, будет возможна явная загрузка меток (см. git-fetch[1]).Теги клонируются по умолчанию, так что передача `--tags` обычно не делает ничего, кроме как переопределяет ранее указанный параметр `--no-tags`.
Может использоваться совместно с
--single-branch
для клонирования и дальнейшей работы только с одной веткой, без каких-либо других ссылок. Это полезно, например, если есть потребность держать рядом минимальную копию ветки по умолчанию из некоторого репозитория для её индексации и поиска в ней. -
--recurse-submodules[=<спецификатор-пути>]
-
После того, как клон будет создан, инициализировать и клонировать его подмодули, соответствующие указанному <спецификатору-пути>. Если
=<спецификатор-пути>
не задан, то инициализируются и клонируются все подмодули. Этот параметр может быть указан несколько раз, чтобы задать спецификатор, состоящий из нескольких записей. В полученном клоне устанавливается переменная конфигурации ‘submodule.active`, в качестве значения которой используется итоговый спецификатор пути или «.
«, если ни один не задан, что означает «все подмодули».При инициализации и клонировании подмодулей используются их параметры по умолчанию. Данный параметр эквивалентен запуску
git submodule update --init --recursive <спецификатор-пути>
сразу после завершения клонирования. Если у клонированного репозитория нет рабочей копии или если переключение на текущую ветку после извлечения отключено (т.е. если задан один из параметров:--no-checkout
/-n
,--bare
или--mirror
), то этот параметр игнорируется. -
--[no-]shallow-submodules
-
Клонировать все (выбранные) подмодули как частичные с глубиной 1.
-
--[no-]remote-submodules
-
Все клонируемые подмодули, будут использовать статус из отслеживаемой внешней ветки своих репозиториев, а не SHA-1, сохранённый в надпроекте. Это эквивалентно передаче параметра
--remote
вgit submodule update
. -
--separate-git-dir=<каталог-git>
-
Вместо того, чтобы размещать клонированный репозиторий там, где он должен быть, поместить его в указанный каталог, а затем сделать на него независящую от файловой системы символическую ссылку Git. В результате репозиторий Git может находится отдельно от рабочей копии.
-
--ref-format=<формат-ссылок>
-
Задаёт формат хранения ссылок репозитория. Допустимые значения:
-
files
: ссылки хранятся в виде несвязанного набора файлов и файлаpacked-refs
. Это формат по умолчанию. -
reftable
: reftable-формат. Этот формат является экспериментальным, и его внутреннее устройство может измениться.
-
-
-j
<n> -
--jobs
<n> -
Количество подмодулей, которые будут загружаться одновременно. По умолчанию равно значению переменной конфигурации
submodule.fetchJobs
. - <репозиторий>
-
(Возможно удалённый) <репозиторий>, который должен быть склонирован. См. подробности о том как задавать адрес репозитория в разделе URL-АДРЕСА GIT ниже.
- <каталог>
-
Название нового каталога в который репозиторий должен быть склонирован. Если <каталог> не задан, то используется «человеская» часть ссылки на исходный репозиторий (например,
репо
for/путь/к/репо.git
иfoo
дляhost.xz:foo/.git
). Клонирование в существующий каталог разрешается только, если этот каталог пуст. -
--bundle-uri=<uri>
-
Прежде чем извлекать данные из внешнего репозитория, сначала скачать пакет (bundle) из указанного <uri> и распаковать его в локальный репозиторий. Ссылки из пакета будут храниться в скрытым пространстве имён
refs/bundle/*
. Этот параметр несовместим с--depth
,--shallow-since
и--shallow-exclude
.
Когда мы клонируем себе репозиторий с GitHub, то не просто скачиваем копию кода с сервера на свой компьютер, а получаем полноценную рабочую среду с историей коммитов, ветками и возможностью синхронизации.
Сегодня разберёмся, как всё это работает, как клонировать себе репозиторий и что делать, если что-то пойдёт не так.
Введение в клонирование репозиториев
Git — это система управления версиями, которая позволяет отслеживать изменения в коде, работать над разными версиями проекта и синхронизировать файлы между несколькими разработчиками.
Репозиторий — это хранилище, в котором находятся файлы проекта, их предыдущие версии и история всех изменений. Он может находиться локально на компьютере или на удалённом сервере, в нашем случае — на GitHub.
Клонирование репозитория — это создание его полной копии на локальном устройстве. В отличие от обычного скачивания, при клонировании загружаются не только файлы, но и вся история изменений, включая коммиты, ветки и удалённые ссылки. После клонирования можно вносить правки, фиксить баги, коммитить изменения и синхронизировать их с удалённым репозиторием.
Можно клонировать как свой репозиторий, так и чужой, если хочется внести свой вклад в опенсорс или просто поэкспериментировать с чужим кодом.
Зачем клонировать репозиторий
Клонирование нужно, если мы хотим работать с кодом локально, изменять файлы и синхронизироваться с удалённым репозиторием. Это полезно в нескольких сценариях:
- Разработка в команде — можно вносить изменения и отправлять их обратно в репозиторий, а также получать обновления от других разработчиков.
- Работа с открытым кодом — можно клонировать чужие проекты, изучать их, тестировать или предлагать изменения.
- Удобство работы — локально проще редактировать файлы, фиксить конфликты, добавлять большие коммиты и тестировать изменения перед отправкой.
- Резервное копирование — если репозиторий пропадёт с GitHub, на локальной машине останется его копия.
Клонирование даёт полный контроль над кодом, возможность работы в офлайне и синхронизацию с удалённым репозиторием.
Способы клонирования репозитория
Клонировать репозиторий можно разными способами — через командную строку, графический интерфейс Git GUI или среду разработки. Выбор зависит от удобства и предпочтений:
- Командная строка — самый гибкий и универсальный способ, особенно если часто работаем с Git.
- Git GUI — подойдёт, если хочется визуально управлять репозиториями без команд.
- Visual Studio — удобный вариант, если используете VS для разработки и хотите интегрировать работу с Git прямо в IDE.
Клонирование через командную строку
Git CLI (Command Line Interface) — это инструмент для работы с Git через терминал или командную строку. Он позволяет выполнять разные команды — git clone, git commit, git push
и другие.
Сначала копируем ссылку на репозиторий с GitHub, затем в терминале используем команду git clone
, указывая эту ссылку. После клонирования можно переключаться между ветками, вносить изменения и отправлять их обратно в удалённый репозиторий. Как именно всё это делать — разберём чуть позже.
Клонирование с помощью Git GUI
Если не хочется работать в терминале, можно использовать графические клиенты. Они упрощают работу с Git, показывают изменения наглядно и позволяют клонировать репозитории в несколько кликов.
Самые популярные:
- GitHub Desktop — официальный клиент от GitHub, простой и удобный;
- Sourcetree — мощный инструмент с детализированным отображением коммитов;
- GitKraken — продвинутый клиент с красивым интерфейсом.
Везде есть кнопка Clone, куда нужно вставить ссылку на репозиторий, выбрать папку для загрузки и нажать ОК.
Клонирование через Visual Studio
В Visual Studio или Visual Studio Code Git уже встроен в редактор. В нём можно клонировать репозиторий прямо из интерфейса:
- Открываем Visual Studio Code.
- Вызываем командную строку Ctrl + Shift + P (на Mac ⌘ + Shift + P) и выбираем Git: Clone.
- Вставляем ссылку на репозиторий.
- Выбираем папку и ждём загрузки.
В Visual Studio (не Code) всё так же:
- Открываем Git Changes → Clone Repository.
- Вставляем ссылку и нажимаем Clone.
Удобно, если работаем в Visual Studio и хотим сразу открыть проект после клонирования.
Пошаговая инструкция по клонированию с помощью командной строки
Теперь подробно разберём, как клонировать репозиторий с GitHub на свой компьютер. Начнём с установки Git, зарегистрируемся на GitHub, разберёмся с SSH-ключами и в конце выполним само клонирование. В результате сможем работать с кодом локально, а затем отправлять изменения обратно в репозиторий.
Шаг 1: установка и настройка Git
Прежде чем клонировать репозиторий, нужно убедиться, что установлен Git. В большинстве случаев он уже есть в системе, но если нет, его можно скачать с официального сайта и установить.
Чтобы проверить, установлен ли Git, открываем терминал и вводим команду git --version
. Если Git установлен, то увидим его версию.
Дальше нужно настроить имя пользователя и email, которые будут использоваться для коммитов. Для этого используем такую команду, не забудьте заменить имя и почту на свои:
git config --global user.name "Имя"
git config --global user.email "your.email@mail.com"
Эти данные будут отображаться в истории коммитов, так что лучше указать те же, что и в GitHub.
Чтобы посмотреть все глобальные настройки Git, вводим команду git config --list --global
. Если нужно изменить какие-то параметры, можно просто снова выполнить команду git config --global
и указать новые значения.
Шаг 2: регистрация на GitHub
Если ещё нет аккаунта, регистрируемся на GitHub. Это бесплатно, и базового аккаунта хватит для большинства задач.
После регистрации заходим в настройки профиля: Settings → SSH and GPG keys. Этот раздел понадобится для следующего шага, не закрываем это окошко, пусть повисит немного на фоне.
Шаг 3: создание SSH-ключа
SSH (Secure Shell) — это безопасный способ подключения к репозиторию без необходимости вводить логин и пароль. Если настроить SSH, можно удобно работать с удалёнными репозиториями, не вводя учётные данные при каждом действии.
Для начала проверим, есть ли уже сгенерированные SSH-ключи. Это можно посмотреть либо в профиле GitHub, либо выполнив команду в терминале:
ls -al ~/.ssh
Если в списке есть файлы id_rsa.pub или id_ed25519.pub, значит, SSH-ключи уже созданы, и можно сразу добавить их в GitHub. Если терминал говорит, что такой директории нет, значит, ключи ещё не создавались.
Чтобы создать новый ключ, выполняем команду (и вводим тот же email, который указали при настройке Git):
ssh-keygen -t ed25519 -C "your.email@mail.com"
Терминал сообщит, что создаёт новый ключ, и попросит указать путь для сохранения ключа (по умолчанию ~/.ssh/id_ed25519). Можно нажать Enter, чтобы использовать стандартный путь.
Дальше терминал попросит задать парольную фразу — можно что-то ввести или оставить пустым. Если указать пароль, то при каждом использовании ключа GitHub будет его запрашивать.
После создания ключа нужно добавить его в SSH-агент, чтобы Git мог использовать ключ без лишних запросов. Вводим команды:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Теперь нужно добавить публичный ключ (id_ed25519.pub) в свой профиль GitHub. Для этого копируем ключ в буфер обмена:
cat ~/.ssh/id_ed25519.pub | pbcopy # для macOS
clip < ~/.ssh/id_ed25519.pub # для Windows
Переходим в свой профиль GitHub → Settings → SSH and GPG keys и нажимаем New SSH key. Там вводим название (например, «Рабочий ноутбук»), вставляем скопированный ключ в поле Key и нажимаем Add SSH key.
Дальше GitHub попросит ввести пароль от аккаунта, чтобы подтвердить действие. После этого в списке ключей в профиле появится новый Authentication keys.
Теперь проверим, всё ли сработало и установлено ли SSH-соединение. Для этого вводим команду:
ssh -T git@github.com
Если всё ок, то получим сообщение You’ve successfully authenticated, but GitHub does not provide shell access:
Шаг 4: клонирование репозитория
Дальше нам понадобится ссылка на репозиторий и папка, куда мы хотим его склонировать. На GitHub можно выбрать один из двух вариантов:
- HTTPS — удобно, если не настроены SSH-ключи.
- SSH — предпочтительный вариант, если уже настроены SSH-ключи. Так не придётся вводить логин и пароль при каждом взаимодействии с удалённым репозиторием.
Допустим, мы хотим склонировать через SSH репозиторий Spoon-Knife. Для этого сначала копируем ссылку на него.
Заходим на страницу репозитория, нажимаем на кнопку Code, выбираем вкладку SSH и копируем оттуда ссылку:
git@github.com:octocat/Spoon-Knife.git
Теперь в терминале переходим в папку, где хотим разместить клонированный проект. Например, если хотим поместить его в ~/projects/, то выполняем:
cd ~/projects/
Затем вводим команду клонирования:
git clone git@github.com:octocat/Spoon-Knife.git
После выполнения команды в выбранной папке появится директория Spoon-Knife:
cd Spoon-Knife
ls -la
Всё! Теперь можно открыть папку с проектом в редакторе кода и начать работу:
Клонированный репозиторий связан с удалённым репозиторием на GitHub, и любые изменения можно коммитить и пушить обратно.
Проблемы и их решения
Иногда при клонировании возникают ошибки доступа, проблемы с аутентификацией или ошибки с URL. Посмотрим, что с этим делать.
Ошибка доступа (401, 403)
Если при клонировании через HTTPS появляется ошибка 401 Unauthorized или 403 Forbidden, это значит, что к репозиторию нет доступа. Тогда нужно:
- Проверить, что репозиторий существует и у нас есть к нему доступ (если он приватный, доступ должен быть выдан владельцем).
- Использовать персональный токен вместо пароля, так как GitHub больше не поддерживает аутентификацию по паролю через HTTPS.
Как исправить:
- Создаём personal access token на GitHub.
- При клонировании вводим токен вместо пароля.
Ошибка Repository not found
Эта ошибка возникает, если репозиторий не существует или указана неправильная ссылка.
Как исправить:
- Проверяем, что правильно скопировали ссылку для клонирования (лучше копировать напрямую с GitHub).
- Если репозиторий приватный, проверяем, что у нас есть права на доступ.
Ошибка с SSH-ключом
Если используем SSH, но клонирование не срабатывает, возможно, проблема с ключами.
Как исправить:
- Проверяем, что SSH-ключ добавлен в учётную запись GitHub:
ssh -T git@github.com
Если всё настроено правильно, появится сообщение Hi USERNAME! You’ve successfully authenticated. - Проверяем, что наш публичный ключ добавлен в GitHub в разделе Settings → SSH and GPG keys.
Ошибка Remote HEAD refers to nonexistent ref
Если после клонирования Git пишет remote HEAD refers to nonexistent ref, значит, в репозитории удалили основную ветку.
Как исправить:
- Посмотреть доступные ветки:
git branch -a
- Переключиться на нужную ветку:
git checkout main
Если ничего не помогает, тогда дальше углубляемся в документацию или идём на StackOverflow ¯\_(ツ)_/¯
Вёрстка:
Кирилл Климентьев
Задача: форкнуть репозиторий в GitHub, создать ветку и работать с кодом.
Сразу появляется много вопросов — что такое GitHub, какие для этого нужны команды, зачем, а главное, как всем этим пользоваться? Давайте разберёмся.
Больше из рубрики Git: введение, основные команды, решение проблем.
Когда мы пишем код, мы постоянно туда что-то добавляем, удаляем, и иногда всё может ломаться. Поэтому перед любыми изменениями стоит сделать копию проекта. Если собирать проекты в папки с именами проект1
, проект1_финал
и проект2_доделка
, вы быстро запутаетесь и точно что-нибудь потеряете. Поэтому для работы с кодом используют системы контроля версий.
Система контроля версий — программа, которая хранит разные версии одного документа, позволяет переключаться между ними, вносить и отслеживать изменения. Таких систем много и все они работают по принципу компьютерной игры, где вы можете вернуться к месту сохранения, если что-то пошло не так.
Git — самая популярная система контроля версий. С Git можно работать через командную строку (или терминал). В каждой системе своя встроенная программа для работы с командной строкой. В Windows это PowerShell или cmd, а в Linux или macOS — Terminal. Вместо встроенных программ можно использовать любую другую — например, Git Bash в Windows или iTerm2 для macOS.
Как работает терминал: мы вводим команду и получаем ответ компьютера — или всё получилось, или где-то ошибка, или нужно ввести что-то ещё — например, пароль. Поэтому большая часть этой инструкции состоит из команд для терминала. Сначала будет непривычно, но вам понравится.
Но давайте по порядку — установим Git на компьютер.
Устанавливаем и настраиваем Git
Windows. Скачайте Git для Windows, запустите exe-файл, следуйте инструкциям.
macOS. Скачайте Git для macOS и запустите dmg-файл. Если он не запускается, зайдите в Системные настройки — Безопасность и нажмите кнопку Open anyway (Всё равно открыть).
Linux. Установите Git через встроенный менеджер пакетов. Если у вас Ubuntu, используйте команду sudo apt-get install git
. Команды для других дистрибутивов можно посмотреть здесь.
Как проверить, что Git установился
Откройте терминал и введите команду
git --version
Если Git установлен, то вы увидите номер версии, например, 2.35.1
.
Настраиваем Git
Теперь нужно ввести имя и адрес электронной почты, чтобы ваши действия в Git были подписаны, а ещё для привязки к GitHub.
Добавить имя (введите его внутри кавычек):
git config --global user.name "ваше имя"
Добавить электронную почту (замените email@example.com на вашу почту):
git config --global user.email email@example.com
Опция --global
значит, что имя и почта будут использоваться для всех ваших действий в Git. Если вы хотите менять эту информацию для разных проектов, то вводите эти же команды, только без опции --global
.
Регистрируемся на GitHub
GitHub (или Гитхаб) — веб-сервис на основе Git, который помогает совместно разрабатывать IT-проекты. На Гитхабе разработчики публикуют свой и редактируют чужой код, комментируют проекты и следят за новостями других пользователей.
Профиль на Гитхабе и все проекты в нём — ваше публичное портфолио разработчика, поэтому нужно завести профиль, если у вас его ещё нет.
- Зайдите на сайт https://github.com и нажмите кнопку Sign up.
- Введите имя пользователя (понадобится в дальнейшей работе), адрес электронной почты (такой же, как при настройке Git) и пароль.
- На почту придёт код активации — введите на сайте.
- Появится окно с выбором тарифного плана. Если вы пользуетесь Гитхабом для учёбы, то укажите, что профиль нужен только для вас и вы студент.
- Опросы и выбор интересов можно пропустить.
На этом всё — вы зарегистрировались и у вас есть собственный профиль.
Устанавливаем SSH-ключи
Чтобы получить доступ к проектам на GitHub со своего компьютера и выполнять команды без постоянного ввода пароля, нужно, чтобы сервер вас узнавал. Для этого используются SSH-ключи.
SSH — протокол для безопасного соединения между компьютерами.
SSH-ключ состоит из двух частей — открытого и закрытого ключа. Открытый ключ мы отправляем на сервер. Его можно не прятать от всех и не переживать, что кто-то его украдёт, потому что без закрытого ключа он бесполезен. А вот закрытый ключ — секретная часть, доступ к нему должен быть только у вас. Это важно.
Мы будем подключаться к GitHub по SSH. Это работает так:
- Вы отправляете какую-то информацию на GitHub, который знает ваш открытый ключ.
- GitHub по открытому ключу понимает, что вы это вы, и отправляет что-то в ответ.
- Только вы можете расшифровать этот ответ, потому что только у вас есть подходящий закрытый ключ.
А чтобы подключиться к GitHub с помощью SSH-ключа, сначала нужно его создать.
Проверяем SSH-ключи
Перед созданием нового SSH-ключа проверим, есть ли на компьютере другие ключи. Обычно они лежат в папке с названием .ssh
— поэтому посмотрим, есть ли в ней что-то, с помощью команды в терминале:
ls -al ~/.ssh
Если у вас уже есть SSH-ключ, то в списке будут файлы с именами вроде id_rsa.pub
, id_ecdsa.pub
или id_ed25519.pub
. А если терминал ругается, что директории ~/.ssh
не существует, значит, у вас нет SSH-ключей. Давайте это исправим.
Создаём новый SSH-ключ
Откройте терминал и скопируйте туда эту команду. Не забудьте подставить в кавычки почту, на которую вы регистрировались на Гитхабе.
ssh-keygen -t ed25519 -C "your_email@example.com"
ed25519
— это алгоритм для генерации ключей. Если ваша система не поддерживает алгоритм ed25519
(и вы увидели ошибку), используйте немного другую команду с алгоритмом rsa
:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Терминал спросит, куда сохранить ключ. Если не хотите менять имя файла, которое предлагает терминал, просто нажмите Enter.
> Generating public/private имя-ключа key pair.
> Enter a file in which to save the key (/c/Users/ваш-профиль/.ssh/id_имя-ключа):*[Press enter]*
Теперь нужно добавить пароль, которым будет зашифрован ваш ключ. Это стоит сделать, иначе в дальнейшем могут быть проблемы с настройкой, да и так просто безопаснее.
В результате создаётся новый SSH-ключ, привязанный к вашей электронной почте.
Создание ключа по шагам:
Добавляем SSH-ключ в ssh-agent
ssh-agent
— программа для хранения и управления SSH-ключами. Давайте запустим её и добавим туда наш SSH-ключ. Запускаем командой eval "$(ssh-agent -s)"
:
eval "$(ssh-agent -s)"
Если в ответ терминал покажет надпись «Agent pid» и число — значит, всё ок, агент запущен.
Теперь добавим наш ключ командой.
ssh-add ~/.ssh/id_ed25519
Если у вашего ключа другое имя, замените название id_ed25519
именем файла с ключом (это правило применяется и дальше в инструкции). Если вы устанавливали пароль на ключ, введите его два раза после ввода команды ssh-add
(терминал подскажет, когда это сделать).
Теперь, если всё хорошо, появится надпись Identity added — значит, можно переходить к добавлению ключа на GitHub.
Копируем SSH-ключ
Чтобы добавить ключ на GitHub, нужно сначала его скопировать из вашего файла командой clip
. Вы не увидите ключ на экране, но он появится в буфере обмена, и его можно будет вставить на Гитхаб.
clip < ~/.ssh/id_ed25519.pub
Команда clip
может не сработать на вашем компьютере, тогда есть два способа узнать ключ — простой и сложный.
Сложный способ. Найдите скрытую папку .ssh
, откройте файл id_ed25519.pub
в текстовом редакторе и скопируйте его содержимое.
Простой способ. Введите команду ниже и ключ появится прямо в терминале — его нужно вручную скопировать в буфер обмена. Ключ начинается с ssh-ed22519
или ssh-rsa
(или похожей строки) — поэтому копируйте строку прямо с самого начала.
~ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaCZvnr4ax+Fr shklyar@htmlacademy.ru
Не копируйте этот ключ из статьи — он уже не работает.
Добавляем SSH-ключ на GitHub
Это нужно сделать, чтобы GitHub вас узнавал.
Перейдите на страницу для работы с ключами в вашем профиле на GitHub и нажмите кнопку New SSH key.
В поле Title нужно добавить название нового ключа. Например, если вы используете Mac, вы можете назвать ключ MacBook Air, или, если ключ для курсов Академии, то Academy. А ключ, который вы скопировали на прошлом шаге, вставьте в поле Key.
Не копируйте ключ со скриншота — он уже не работает.
Теперь нажмите кнопку Add SSH key и, если потребуется, введите свой пароль от GitHub, чтобы подтвердить сохранение. Если всё сделано верно, новый ключ появится в списке на странице https://github.com/settings/keys.
Теперь мы можем поработать с проектом в репозитории.
Что такое репозиторий
Репозиторий — папка с файлами вашего проекта на сервере GitHub. Так вы можете работать с проектом откуда угодно, не переживая, что какие-то файлы потеряются — все данные останутся в репозитории.
Если над проектом работает несколько программистов, сначала создаётся мастер-репозиторий — это общий репозиторий с рабочей версией проекта. А каждый программист работает с форком — то есть полной копией мастер-репозитория. В форке вы можете безнаказанно менять код и не бояться что-то сломать в основной версии проекта.
Делаем форк мастер-репозитория
Заходим в нужный репозиторий и нажимаем на «вилку» с надписью fork.
Появится окно Create a new fork — проверьте, что он называется так, как вам нужно, и жмите кнопку Create fork. Через пару секунд всё готово.
Клонируем форк на компьютер — git clone
Клонировать форк — значит скачать его, чтобы работать с кодом на своём компьютере. Тут нам и пригодится SSH.
Открываем терминал и переходим в папку с будущим проектом — для этого используем команду cd your-project
. Если вы хотите, чтобы проект лежал в папке device
, введите
cd device
Если такой папки на компьютере нет, то сначала введите md your-project
, чтобы создать эту папку, а затем cd your-project
. Когда перейдёте в папку, введите команду git clone
для клонирования репозитория:
git clone git@github.com:your-nickname/your-project.git
Замените your-nickname
на ваше имя пользователя на GitHub, а your-project
на название проекта. Проще всего их найти прямо наверху страницы репозитория.
Если вы правильно настроили SSH-ключи, Git скопирует репозиторий на ваш компьютер.
➜ device git clone git@github.com:academy-student/1173761-device-34.git
Клонирование в «1173761-device-34»…
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0
Получение объектов: 100% (15/15), 145.07 КиБ | 900.00 КиБ/с, готово.
Если вы видите ошибку Error: Permission denied (publickey)
, скорее всего, вы ошиблись в настройке SSH-ключа. Вернитесь в этот раздел инструкции и повторите процесс настройки.
Кстати, если вы хотите, чтобы название папки с проектом у вас на компьютере отличалось от имени репозитория, можете дополнить команду клонирования, добавив в конце другое название:
git clone git@github.com:_your-nickname_/_your-project_.git folder_name
Теперь на вашем компьютере в папке your_project
или в той, название которой вы указали, находится полная копия репозитория c GitHub.
В каждом репозитории есть как минимум одна основная ветка, которую создаёт сам Git — она называется master
. Обычно в ней хранят проверенную версию программы без ошибок.
А если вы хотите исправить ошибку в коде или добавить что-то в проект, но не хотите сломать код в основной ветке, нужно создать новую ветку из master
и работать из неё. Каждая ветка — что-то вроде второстепенной дороги, которая затем снова соединится с основной.
Создаём новую ветку — git branch
Откройте терминал и введите команду
git branch
Она показывает список веток, с которыми мы работаем в проекте, и выделяет текущую. Если мы находимся в master
, то создаём новую ветку командой
git checkout -b имя-новой-ветки.
➜ 1173761-device-34 git:(master) git checkout -b task1
Переключено на новую ветку «task1»
➜ 1173761-device-34 git:(task1)
Если текущая ветка не master
, переключитесь на неё с помощью команды checkout
. После git checkout
надо указать название нужной ветки.
git checkout master
Мы делаем это, чтобы новая ветка содержала свежую рабочую версию проекта. Если вы ошиблись в названии, например, допустили опечатку, вы можете изменить название ветки с помощью команды:
git branch -m старое-имя-ветки новое-имя-ветки.
Сохраняем изменения — git add
После того, как вы создали ветку и поработали в ней у себя на компьютере, нужно сохранить результат, чтобы появился в репозитории и не пропал.
Если вы хотите сохранить изменения не во всех файлах, для начала введите команду git status
. Она покажет текущее состояние в вашей ветке, а именно список с названиями изменённых файлов, если они есть, и укажет на те, которые ожидают записи и сохранения (обычно они выделены красным цветом).
Чтобы сохранить все изменения разом, используйте команду
git add -A
Чтобы сохранить изменения только отдельных файлов, укажите их имена вручную. Например, если вы изменили файл index.html
, введите
git add index.html
Если название очень длинное, вы начните его писать, нажмите Tab и терминал сам предложит продолжение пути к файлу.
Делаем коммит — git commit
Сделать коммит — значит зафиксировать все сохранённые изменения и дать им название. Это делается с помощью команды commit
git commit -m "ваше сообщение"
Текст сообщения должен быть лаконичным и вместе с этим сообщать о том, что делает коммит (внесённые изменения). Например,
- Добавляет имя наставника в Readme
- Вводит функцию сортировки изображений
- Правит ошибку в поиске городов на карте
Отправляем изменения на GitHub — git push
Сохранённые изменения пока не видны коллегам, потому что находятся в нашем локальном репозитории. Нужно отправить коммиты на GitHub. Для этого введите команду
git push origin название-текущей-ветки
Где origin
означает репозиторий на компьютере, то есть ваш форк. Слово origin
— часть команды, не меняйте это название на своё.
Создаём пулреквест
Пулреквест (или PR) — это предложение изменить код в репозитории. PR должен проверить администратор мастер-репозитория — это может быть коллега-разработчик, техлид или наставник на курсе.
Если к коду нет вопросов, пулреквест принимается. Если нужно что-то исправить — отклоняется, и придётся исправить код и снова пройти цепочку git add
— git commit
— git push
. Если вы и дальше работаете в той же ветке, а пулреквест ещё не принят, все ваши изменения автоматически добавятся в пулреквест, созданный из этой ветки после команды git push origin название-текущей-ветки
.
Чтобы создать пулреквест, зайдите на страницу вашего форка на GitHub. Вверху появилась плашка Compare & pull request, а ещё можно зайти на вкладку Pull Requests.
Нажмите на неё и окажетесь на странице открытия пулреквеста. Проверьте описание и нажмите Create pull request.
Готово, теперь ждём остаётся ждать одобрения пулреквеста или комментариев к нему.
Синхронизируем репозитории
Предположим, вы исправили код, руководитель или наставник одобрил ваши правки и принял пулреквест.
Теперь код в мастер-репозитории обновился, а в вашем форке нет, вы ведь не обновляли свою версию репозитория с тех пор, как клонировали её себе на компьютер. Приведём форк в актуальное состояние.
В локальном репозитории переключаемся на ветку master
.
git checkout master
Забираем изменения из ветки master
мастер-репозитория
git pull git@github.com:academy-student/1173761-device-34.git master
Отправляем изменения уже из своей ветки master
в ваш форк на GitHub с помощью команды
git push origin master
Готово, теперь форк и оригинальный репозиторий находятся в актуальном состоянии.
Словарик
Система контроля версий — программа, которая хранит разные версии одного документа, позволяет переключаться между ними, вносить и отслеживать изменения.
Git — самая популярная система контроля версий. С Git можно работать через терминал.
Как работает терминал: мы вводим команду и получаем ответ компьютера — или всё получилось, или где-то ошибка, или нужно ввести что-то ещё.
GitHub (или Гитхаб) — веб-сервис, основанный на Git, который помогает совместно разрабатывать IT-проекты. На Гитхабе разработчики публикуют свой и редактируют чужой код, комментируют проекты и следят за новостями других пользователей.
SSH-ключ нужен, чтобы получить доступ к проектам на GitHub со своего компьютера и выполнять команды без постоянного ввода пароля, нужно, чтобы сервер нас узнавал.
ssh-agent — программа для хранения и управления SSH-ключами.
Репозиторий — папка с файлами вашего проекта на сервере GitHub или у вас на компьютере.
Мастер-репозиторий — это общий для всей команды репозиторий с рабочей версией проекта.
Форк — полная копия мастер-репозитория, в которой вы можете безопасно работать.
Клонировать форк — скачать его командой git clone
, чтобы работать с кодом на своём компьютере.
Пулреквест (или PR) — предложение изменить код в репозитории. PR должен проверить администратор мастер-репозитория — это может быть коллега-разработчик, техлид или наставник на курсе.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
ТелеграмПодкастБесплатные учебники
Одна из самых распространенных систем управления версиями – Git. Ее ядро добавляет в систему ряд консольных команд, предназначенных для управления репозиториями. В самих же репозиториях хранятся важные каталоги, конфигурационные файлы, журналы и прочие связанные элементы.
Далее я расскажу, как создать, клонировать и удалить эти репозитории.
Следующие инструкции предназначены для тех, кто уже установил Git на свой сервер. Если вы еще не сделали этого, используйте руководство с GitHub, которое поможет разобраться с выполнением поставленной задачи.
Подробнее: How to install Git
Создание Git-репозитория
Сначала рассмотрим создание репозитория. Представим, что у вас уже есть папка для хранения файлов, но она еще не находится под контролем Git.
Откройте «Командную строку» (Windows) или Терминал (Linux/macOS) и перейдите по пути данной папки.
В Linux выполните команду:
cd /home/user/directory
В macOS:
cd /Users/user/directory
В Windows:
cd C:/Users/user/directory
Остается только ввести нижеуказанную команду, чтобы завершить первый этап.
Благодаря этой команде создается структура подкаталога со всеми необходимыми файлами. Кстати, все они расположены в подпапке с названием .git. Пока что проект не находится под контролем учета версий, поскольку в него добавлены только нужные элементы для работы Git. Для добавления файлов в репозиторий будем использовать git add. Команда git commit является заключительной:
git add git commit -m 'initial project version'
Теперь у вас есть Git-репозиторий со всеми необходимыми составляющими и отслеживаемыми файлами.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Клонирование существующего репозитория
Второй вариант создания директории для контроля версий – копирование существующего проекта с другого сервера. Это актуально, когда осуществляется доработка готового проекта или вы желаете внедрить его компоненты в свой. В этом поможет команда git clone, о которой и пойдет речь далее.
При использовании упомянутой команды вы получаете клоны всех версий файлов, а значит, можете использовать любые из них, если что-то пойдет не так. Это же пригождается, когда требуется вернуть предыдущую версию проекта, что осуществимо благодаря файлам, помещенным под версионный контроль.
Для клонирования существующего репозитория понадобится ввести git clone <url>. Пример такой команды вы видите ниже:
git clone https://github.com/rep/rep
Данная команда позволила вам получить клон всех версий указанного репозитория (в качестве примера было взято название rep). Теперь на вашем сервере создана директория с указанным названием. К ней подключена поддержка контроля версий, то есть появилась папка .git.
При использовании вышеуказанной команды репозиторий клонируется с текущим названием. Если же оно должно отличаться, используйте следующую вариацию команды:
git clone https://github.com/rep/rep myrep
Завершим этот раздел статьи описанием содержимого, которое появляется в консоли при выполнении команды. Данный вывод соответствует успешному клонированию:
Cloning into 'Git'... remote: Counting objects: 46, done. remote: Compressing objects: 100% (25/25), done. remote: Total 46 (delta 7), reused 43 (delta 4), pack-reused 0 Unpacking objects: 100% (46/46), done. Checking connectivity... done.
Удаление локального Git-репозитория
Если с созданием и клонированием репозиториев все понятно, то как быть, когда папка с проектом уже существует, но в нее нужно поместить новые данные, удалив предыдущие, или когда Git-репозиторий на сервере больше не нужен. В таком случае осуществляется стандартное удаление.
В корне каталога с проектом необходимо избавиться от папки .git, о которой уже шла речь выше. Так вы удаляете только ту информацию, которая связана с Git, но сам проект остается. В Linux через Терминал вы должны перейти к каталогу с проектом и ввести следующую команду:
Еще один вариант – удаление .gitignore и .gitmodules в случае их наличия. Тогда команда меняет свой вид на:
Остается только убедиться в отсутствии скрытой папки, которая может помешать инсталляции новой. Для этого существует простая команда ls -lah, выполнить которую необходимо с указанием того же каталога.
Только что мы разобрались с основами создания, клонирования и удаления Git-репозитория. Удачи!
You have created a repository on Github and want to create a local copy on your computer? We will use the git clone command in git to download a git repository on your computer.
git clone is the command that clones a repository into a local repository
This post will show you how you can sync a local copy of your Github remote repository on Windows.
First, you need to install Git on your computer.
- From Github Repository, click on Clone
- Copy the clone URL
- In Terminal (Mac) or command line (Windows git bash), move to local directory
- Use the git clone command along with the copied URL
How to Clone Github Repository in Windows
To clone your Github repo on Windows.
- Open Git Bash
If Git is not already installed, it is super simple. Just go to the Git Download Folder and follow the instructions.
- Go to the current directory where you want the cloned directory to be added.
To do this, input
cd
and add your folder location. You can add the folder location by dragging the folder to Git bash.$ cd '/c/Users/j-c.chouinard/My First Git Project'
- Go to the page of the repository that you want to clone
- Click on “<> Code” and copy the URL.
- Use the git clone command along with the copied URL from earlier.
$ git clone https://github.com/USERNAME/REPOSITORY
- Press Enter.
$ git clone https://github.com/USERNAME/REPOSITORY
Cloning into Git …
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (13/13), done.
remove: Total 13 (delta 1), reused 0 (delta 1)
Unpacking objects: 100% (13/13), done.
Congratulations, you have created your first local clone from your remote Github repository. See how you can commit a file to your Github repository.
Duplicate a Repository
If you want to make private a forked repository, you can duplicate the repository.
Step 1: Go to Github
Step 2: Create a new repository
Here I will name my repository PVT-new-repository.
Step 3: Go to the old repository
Step 4: Click on “Clone or download” and copy the URL.
Step 5: Open Git Bash
Step 6: Create a bare clone of the repository.
$ git clone --bare https://github.com/username/old-repo.git
Step 7: Push a Mirror to the new repository.
$ cd old-repository.git
$ git push --mirror https://github.com/username/PVT-new-repository.git
Remove the temporary local repository you created in step 1.$ cd ..
$ rm -rf old-repository.git
Clone Your Github in VSCode
VSCode is a useful text editor built by Microsoft that can easily be used in Windows and MacOS. Here is how to install git in VSCode.
To clone the Github repository using VSCode, similar as before, copy the clone URL.
In Visual Studio Code, press Ctrl + Shift + P
(on Windows), or Command + Shift + P
(on Mac). and type Git: Clone
.
Add the clone URL and choose the folder location where you desire cloning your repository.
Become a Git Master
Although very powerful, Git is very complex. I highly recommend that you follow Datacamp’s Git course to really become comfortable with Git commands and avoid painful mistakes.
- Introduction to Git
Git Useful Commands
Git command | What it does |
---|---|
git clone | clone repository |
git clone –bare | bare clone of the repository |
git push –mirror | push mirror of repository |
git commit -m “message” | commit to repository |
Other Version Control with Git and Github Posts
Learn Git and Github (Complete Guide)
Basics of Version Control
How to Use Git and Github with VSCode
Conclusion
This is it.
You now know how to Clone a Github Repository on Your Computer.
SEO Strategist at Tripadvisor, ex- Seek (Melbourne, Australia). Specialized in technical SEO. Writer in Python, Information Retrieval, SEO and machine learning. Guest author at SearchEngineJournal, SearchEngineLand and OnCrawl.