Клонирование и использование репозитория GitHub в Visual Studio Code
Сведения о клонировании общедоступного репозитория из GitHub на локальный компьютер с помощью Visual Studio Code.
Клонировать репозиторий
Действие клонирования репозитория GitHub означает перенос облачного исходного кода в локальную среду разработки.
- Панель действий
- Строка состояния
- Палитра команд
- Встроенный терминал
Это действие недоступно из этой функции. Выберите другую вкладку.
Это действие недоступно из этой функции. Выберите другую вкладку.
- Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
- В командной строке палитры введите gitcl , выберите команду Git: Клонировать , а затем выберите «Клонировать» из GitHub и нажмите клавишу ВВОД.
- Если появится запрос на ввод URL-адреса репозитория, выберите параметр клонирования из GitHub и нажмите клавишу ВВОД.
- Если вам будет предложено войти в GitHub, завершите процесс входа.
- Введите azure-samples/js-e2e-express-server в поле URL-адрес репозитория.
- Выберите (или создайте) локальный каталог, в который нужно клонировать проект, а затем выберите » Выбрать в качестве назначения репозитория».
- Когда появится уведомление с вопросом, нужно ли открыть клонированный репозиторий, выберите вариант Открыть.
git clone https://github.com/YOUR-NAME-OR-ORGANIZATION/YOUR-REPO-NAME
cd YOUR-REPO-NAME
code .
Инициализация нового репозитория
Если у вас еще нет репозитория GitHub, но вы хотите запустить проект локально, инициализируйте папку с помощью Git.

- Панель действий
- Строка состояния
- Палитра команд
- Встроенный терминал
- Выберите элемент управления версиями на панели действий или используйте сочетание клавиш CTRL + SHIFT + G.
- Выберите репозиторий Initialize.
Это действие недоступно из этой функции. Выберите другую вкладку.
- Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
- Отфильтруйте с Git помощью , а затем выберите Initialize repository .
- Выберите папку, чтобы выбрать в качестве корневого каталога репозитория.
git init
Создание ветви для изменений
- Панель действий
- Строка состояния
- Палитра команд
- Встроенный терминал
- Выберите элемент управления версиями на панели действий.
- Выберите многоточие (. ) рядом с элементом управления версиями.
- Выберите «Ветвь ->Создать ветвь«.
- Выберите имя ветви в строке состояния. Откроется палитра команд. Строка состояния находится в нижней части Visual Studio Code.
- Выберите в палитре команд элемент Создание ветви.
- Введите имя для новой ветви.
- Введите имя для новой ветви. Экран «Отображение имени ветви в строке состояния».

- Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
- Найдите элемент git branch и выберите Git: Create Branch .

- Введите новое имя ветви, например test .
- Экран «Отображение имени ветви в строке состояния».

- Откройте интегрированный терминал из терминала —> новый терминал.
- Создайте новую ветвь с помощью MY-BRANCH следующей команды Git:
git checkout -b MY-BRANCHФиксация изменений локально
После внесения изменений в ветвь зафиксируйте изменения.

- Панель действий
- Строка состояния
- Палитра команд
- Встроенный терминал
- Выберите элемент управления версиями на панели действий.
- Введите сообщение о фиксации, а затем нажмите кнопку «Зафиксировать«.
Это действие недоступно из этой функции. Выберите другую вкладку.
- Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
- В палитре команд фильтруйте с Git помощью выбора Commit .
- Введите сообщение фиксации, а затем нажмите клавишу ВВОД .
git commit -m "YOUR COMMIT MESSAGE"Отправка локальной ветви в GitHub

- Панель действий
- Строка состояния
- Палитра команд
- Встроенный терминал
- Щелкните значок «Система управления версиями» на панели действий.
- Выберите «Опубликовать ветвь«. Если репозиторий не существует на GitHub, он создает репозиторий для вас.
- В строке состояния Visual Studio Code выберите значок отправки справа от имени ветви.
- Выберите имя удаленного расположения во всплывающем окне. Если вы имеете только одно удаленное расположение, вам не будет предложено выбрать имя такого расположения.
- Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
- В палитре команд фильтруйте с Git помощью выбора Push .
- Если у вас несколько вышестоящий удаленных, выберите удаленный, а затем нажмите клавишу ВВОД .
- Откройте интегрированный терминал из терминала —> новый терминал.
- Создайте новую ветвь с помощью MY-BRANCH следующей команды Git:
git push
Просмотр выходных данных Git
Вы можете просмотреть команды Git, выполняемые при использовании расширения системы управления версиями. Это помогает отладить при сбое команды.

- Щелкните значок «Система управления версиями» на панели действий.
- Щелкните многоточие (. ) и выберите элемент Показать выходные данные Git.
Инструменты Visual Studio Code для работы с Git и GitHub
При работе в Visual Studio Code с репозиторием необходимо использовать отдельные средства.
Icon Информация Доступ из Команды Git в палитре команд F1 
Расширение системы управления версиями Панель действий 
Расширение запросов на вытягивание и сообщений о проблемах на GitHub Панель действий Расширение репозиториев GitHub Вы можете быстро и без труда открыть репозиторий GitHub. Для этого можно выполнить поиск репозиториев GitHub и выбрать команду «Открыть репозиторий» в палитре команд, нажать клавишу F1 или выбрать команду Open GitHub Repository. (Открыть репозиторий GitHub) из удаленного индикатора (зеленая кнопка слева в нижнем углу строки состояния). Следующие шаги
- Узнайте о развертывании веб-приложения
- Работа с GitHub в Visual Studio Code
- Использование Visual Studio Code с другими поставщиками систем управления версиями
Как клонировать нужную ветку?
Этот вариант склонирует ПОЛНОСТЬЮ весь репозиторий и просто переключится на ветку branch-name:
git clone http://whatever.git -b branch-nameИногда нужно склонировать ТОЛЬКО конкретную ветку, тогда:
git clone --branch=branch-name http://whatever.gitЕще иногда может потребоваться склонировать репозиторий без многолетней истории его коммитов, тогда нужно использовать параметр —depth=5, где 5 — количество коммитов от последнего:
git clone --depth=1 --branch=branch-name http://whatever.gitКак стянуть ветку из удаленного репозитория?
Мне нужно стянуть удаленную ветку так, чтобы в папке с проектом оказались только файлы этой новой ветки.
Так не получается:
git checkout -b origin/- Вопрос задан более трёх лет назад
- 73027 просмотров
1 комментарий
Средний 1 комментарий

Сергей Кузнецов @sergey-kuznetsov Куратор тега Git
Эта команда лишь распаковывает из локального репозитория в рабочий каталог, то что мы ранее стянули с внешнего сервера командой git fetch
Git для начинающих. Урок 2.
Создание и клонирование репозиторияКраткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.
Что такое репозиторий
Это каталог в файловой системе, где хранится информация о проекте:
- файлы и папки проекта
- история проекта
- настройки проекта
- служебная информация
Информация о репозитории хранится в скрытой папке .git в корне проекта.
Можно ли работать с git локально
Да, можно. Но при этом проект находится только на нашей машине и в случае поломки железа или случайной потери данных мы не сможем восстановить проект.
Локальный репозиторий
Это репозиторий, который хранится на нашей машине, в рабочей папке проекта. Это та самая скрытая папка .git
Удаленный репозиторий, зачем он нужен
Это репозиторий, который хранится в облаке, на сторонних сервисах, специально созданных под работу с проектами git.
Плюсы удаленного репозитория
- выполняет роль резервной копии
- возможность работать в команде
- некоторые дополнительные возможности, которые предоставляет хостинг. Например, визуализация истории или возможность работать над проектом прямо в веб-интерфейсе
Что такое клонирование
Это копирование удаленного репозитория на локальную машину. Обычно это первое действие при работе с проектом. При клонировании на нашу машину копируются файлы и папки проекта и вся его история. То есть мы получаем доступ к истории не с момента начала нашей работы над проектом, а с самого начала проекта.
Как клонировать готовый проект
В первую очередь, нужно получить ссылку на проект. Мы можем найти ее сами или получим готовую, например, на новой работе. Возьмем для примера репозиторий vuejs — https://github.com/vuejs/vue.git
Наберем в командной строке
$ git clone https://github.com/vuejs/vue.gitПри этом в текущем каталоге создастся папка vue, в ней окажутся все файлы проекта vue и специальная скрытая папка .git, то есть сам репозиторий, или информация о нем.
Как клонировать проект в другую папку
При клонировании по умолчанию создается папка с таким же названием, как и у репозитория. Но можно склонировать репозиторий и в другую папку вот так
$ git clone https://github.com/vuejs/vue.git vue-newГде vue-new — нужное название папки.
Свой удаленный репозиторий
Для своих проектов нам понадобится собственный репозиторий. Можно работать и локально, но плюсы удаленного мы уже рассматривали выше. Теперь нужно выбрать хостинг для наших git-проектов.
Где держать репозиторий
Есть множество вариантов, самые известные — это github и bitbucket. Нужно выбирать.

На самом деле не парьтесь. У них схожий функционал, и в начале работы с git мы не заметим разницы. bitbucket мне нравится больше из-за интерфейса, но в уроках выберем github из-за его большей популярности.
Чтобы продолжить уроки, нужно зарегистрироваться на github. Если у вас нет там аккаунта, то форму регистрации увидите сразу на главной странице — https://github.com/
Как создать репозиторий в github
После регистрации создание репозитория доступно с главной страницы github. При создании нужно указать название проекта и тип (публичный или приватный). На остальное пока не обращаем внимания.
Права на репозиторий, публичные и приватные
Есть 2 типа репозиториев:
- публичный (public), открыт всем
- приватный (private), доступен только определенному кругу лиц — в первую очередь, нам самим
Публичные репозитории хороши для opensource-проектов и чтобы показать в резюме. Пока нам это не нужно.
Для себя будем создавать приватные репозитории. Для этого нам понадобятся ssh-ключи.

Что такое ssh-ключи
ssh-ключи используются для идентификации клиента на сервере при подключении по безопасному ssh-протоколу. Другими словами, ssh-ключ нужен для того, чтобы пускать на сервер только определенных клиентов. Только тех, кому разрешен доступ к проекту.
ssh-ключ не имеет прямого отношения к git, но так репозитории находятся на удаленных серверах, то ssh-ключи используются для разграничения доступа к приватным репозиториям.
ssh-ключ состоит из пары ключей: публичного и приватного ключа. Это просто 2 текстовых файла:
- /домашний-каталог/.ssh/id_rsa.pub — публичный
- /домашний-каталог/.ssh/id_rsa — приватный
Публичный ключ передается сторонним серверам, например, github, для открытия доступа на эти сервера. Приватный ключ хранится только на нашей машине и никому не передается. То есть когда у нас просят ssh-ключ, чтобы дать доступ на какой-нибудь сервер, мы отдаем именно публичный ключ, id_rsa.pub
Как сгенерировать ssh-ключ
ssh-ключи сами собой не появляются, но стоит проверить, возможно, они были установлены раньше. Запустим в терминале команды
$ cd ~/.ssh $ ls -lЕсли видим файлы id_rsa и id_rsa.pub — отлично, ключи уже есть.
Если этих файлов нет, то нужно сгенерировать ключи утилитой ssh-keygen. В Windows она устанавливается вместе с git, в Linux и MacOS при необходимости установите. В Linux, например, вот так
$ sudo apt install ssh-keygenПосле этого нужно сгенерировать пару ключей, запустив команду в терминале
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"$ ls -l total 24 -rw------- 1 sn8 sn8 1675 Feb 11 2017 id_rsa -rw-r--r-- 1 sn8 sn8 392 Feb 11 2017 id_rsa.pub -rw-r--r-- 1 sn8 sn8 5746 Oct 28 21:52 known_hostsПоявились файлы id_rsa и id_rsa.pub — значит, ключи успешно сгенерированы.
known_hosts — это файл, в котором ssh прописывает сервера, на которые мы заходим. При первом подключении к github нужно будет разрешить доступ к github.com (напечатать yes в терминале)
Как добавить ssh-ключ в настройках github
Открываем публичный ключ id_rsa.pub и копируем его содержимое. В настройках github ищем раздел «SSH и GPG keys» — https://github.com/settings/keys. Жмем «New SSH key», задаем название ключа, например, имя, и вставляем форму публичный ключ, прямо текстом. Все, теперь у нас есть доступ к нашим приватным репозиториям.
Два способа создания проекта
Первый, когда мы начинаем новый проект. Удобнее будет создать репозиторий на github и склонировать пустой проект на локальную машину.
Второй, когда у нас уже есть проект. Нужно зайти в папку проекта и связать его с уже существующим репозиторием на github. Это называется инициализация.
Рассмотрим оба способа.
Пустой проект
Создаем приватный репозиторий на github, назовем его first-site. Я зарегистрировался под именем Webdevkin, моя ссылка для клонирования будет такая — git@github.com:Webdevkin/first-site.git. Ваша зависит от имени пользователя.
Идем в командную строку и запускаем
$ git clone git@github.com:Webdevkin/first-site.gitВ текущей папке получим новую папку с названием first-site — это и есть наш проект.
P.S. У вас склонировать этот репозиторий не получится — он закрытый. Создайте свой 🙂
Непустой проект
Допустим, у нас на локальной машине уже есть проект second-site. Создаем в github репозиторий second-site. Заходим в папку проекта и выполняем команды
$ git init $ git add . $ git commit -m "Initial commit" $ git remote add origin git@github.com:Webdevkin/second-site.git $ git push -u origin masterВсе, можно приступать к работе над проектом. Команды add, commit и push мы разберем в следующих уроках.
Это единственный урок, в котором мы разбирались с тонкостями репозиториев. В дальнейшем будем считать, что репозиторий = проект.
Что могу посоветовать
- github или bitbucket? Для личных проектов неважно, оба сервиса разрешают бесплатно создавать приватные репозитории. Для open source или резюме — github
- не увлекайтесь клонированием в папку со своим названием. Есть шанс запутаться, самому или коллегам
- не путайте публичный и приватный ключи. Отдаем вовне только публичный ключ id_rsa.pub
- при смене рабочей машины можно не генерировать ssh-ключи заново, а скопировать их со старой машины. Тогда не придется заново прописывать новые ключи на серверах
Немного подробнее о копировании ssh-ключей
Как скопировать ssh-ключи с одной машины на другую
Хочу немного затронуть эту тему отдельно. Генерировать ключ на новой машине не обязательно. Но нужно выполнить такие действия
- Скопировать id_rsa и id_rsa.pub со старой машины на новую
- Посмотреть права на файлы, возможно, ключи окажутся слишком «открытыми» для записи и потребуется сменить им права доступа — sudo chmod 700 ~/.ssh/*
- Выполнить команду ssh-add
Ссылки, которые могут пригодиться
- github — https://github.com/
- bitbucket — https://bitbucket.org/
- подробнее об ssh-ключах (en) — connecting-to-github-with-ssh
На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.
Спасибо за внимание и до встречи!
Все уроки курса
- Вводный урок
- 1. Установка и базовая настройка git
- 2. Создание и клонирование репозитория git
- 3. Делаем первые изменения, git status и git diff
- 4. Коммиты и история коммитов, git commit, git log и git show
- 5. Подробнее об истории коммитов. Путешествие по истории
- 6. Работа с сервером, git push и git pull
- 7. Ветки — главная фишка git, git branch и git checkout
- 8. Работа с ветками на сервере, git fetch
- 9. Слияния или мерджи веток, git merge
- 10. Конфликты и их разрешение
- Платная часть курса. Презентация
- * 11. Работа с gitignore и git exclude
- * 12. Буфер обмена git, git stash
- * 13. Копирование коммитов, git cherry-pick
- * 14. Отмена и редактирование последнего коммита
- * 15. Отмена произвольного коммита, git revert
- 16. Склеивание коммитов, git rebase —interactive и git reflog
- * 17. Зачем склеивать коммиты. Плюсы и минусы сквоша
- * 18. Работа с git rebase. Отличия от merge
- * 19. Что такое git push —force и как с ним работать
- * 20. Ищем баги с помощью git, git bisect
- * 21. Как и зачем работать с тегами git
- * 22. Процессы: github flow и git flow
- * 23. Псевдонимы в git
- 24. Мердж-реквесты
- * 25. Форки