Перейти к содержимому

Как скопировать репозиторий github

  • автор:

Клонирование и использование репозитория GitHub в Visual Studio Code

Сведения о клонировании общедоступного репозитория из GitHub на локальный компьютер с помощью Visual Studio Code.

Клонировать репозиторий

Действие клонирования репозитория GitHub означает перенос облачного исходного кода в локальную среду разработки.

  • Панель действий
  • Строка состояния
  • Палитра команд
  • Встроенный терминал

Это действие недоступно из этой функции. Выберите другую вкладку.

Это действие недоступно из этой функции. Выберите другую вкладку.

  1. Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
  2. В командной строке палитры введите gitcl , выберите команду Git: Клонировать , а затем выберите «Клонировать» из GitHub и нажмите клавишу ВВОД.
  3. Если появится запрос на ввод URL-адреса репозитория, выберите параметр клонирования из GitHub и нажмите клавишу ВВОД.
  4. Если вам будет предложено войти в GitHub, завершите процесс входа.
  5. Введите azure-samples/js-e2e-express-server в поле URL-адрес репозитория.
  6. Выберите (или создайте) локальный каталог, в который нужно клонировать проект, а затем выберите » Выбрать в качестве назначения репозитория».
  7. Когда появится уведомление с вопросом, нужно ли открыть клонированный репозиторий, выберите вариант Открыть.
git clone https://github.com/YOUR-NAME-OR-ORGANIZATION/YOUR-REPO-NAME 
cd YOUR-REPO-NAME 
code . 

Инициализация нового репозитория

Если у вас еще нет репозитория GitHub, но вы хотите запустить проект локально, инициализируйте папку с помощью Git.

Screenshot of Visual Studio showing the Initialize repository button.

  • Панель действий
  • Строка состояния
  • Палитра команд
  • Встроенный терминал
  1. Выберите элемент управления версиями на панели действий или используйте сочетание клавиш CTRL + SHIFT + G.
  2. Выберите репозиторий Initialize.

Это действие недоступно из этой функции. Выберите другую вкладку.

  1. Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
  2. Отфильтруйте с Git помощью , а затем выберите Initialize repository .
  3. Выберите папку, чтобы выбрать в качестве корневого каталога репозитория.
git init 

Создание ветви для изменений

  • Панель действий
  • Строка состояния
  • Палитра команд
  • Встроенный терминал
  1. Выберите элемент управления версиями на панели действий.
  2. Выберите многоточие (. ) рядом с элементом управления версиями.
  3. Выберите «Ветвь ->Создать ветвь«.
  1. Выберите имя ветви в строке состояния. Откроется палитра команд. Строка состояния находится в нижней части Visual Studio Code.
  2. Выберите в палитре команд элемент Создание ветви.
  3. Введите имя для новой ветви.
  4. Введите имя для новой ветви. Экран «Отображение имени ветви в строке состояния». The branch name is visible in the status bar.
  1. Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
  2. Найдите элемент git branch и выберите Git: Create Branch . Screenshot of a search for `git branch` and select `Git: Create Branch`.
  3. Введите новое имя ветви, например test .
  4. Экран «Отображение имени ветви в строке состояния». Screenshot showing the branch name is visible in the status bar.
  1. Откройте интегрированный терминал из терминала —> новый терминал.
  2. Создайте новую ветвь с помощью MY-BRANCH следующей команды Git:

    git checkout -b MY-BRANCH 

    Фиксация изменений локально

    После внесения изменений в ветвь зафиксируйте изменения.

    Adding the yarn.lock file to Git

    • Панель действий
    • Строка состояния
    • Палитра команд
    • Встроенный терминал
    1. Выберите элемент управления версиями на панели действий.
    2. Введите сообщение о фиксации, а затем нажмите кнопку «Зафиксировать«.

    Это действие недоступно из этой функции. Выберите другую вкладку.

    1. Откройте палитру команд с сочетанием клавиш CTRL SHIFT + + P.
    2. В палитре команд фильтруйте с Git помощью выбора Commit .
    3. Введите сообщение фиксации, а затем нажмите клавишу ВВОД .
    git commit -m "YOUR COMMIT MESSAGE" 

    Отправка локальной ветви в GitHub

    Visual Studio Code status bar, with the push icon highlighted.

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

      git push

      Просмотр выходных данных Git

      Вы можете просмотреть команды Git, выполняемые при использовании расширения системы управления версиями. Это помогает отладить при сбое команды.

      Visual Studio Code source control, with the Show Git Output selection highlighted.

      1. Щелкните значок «Система управления версиями» на панели действий.
      2. Щелкните многоточие (. ) и выберите элемент Показать выходные данные Git.

      Инструменты Visual Studio Code для работы с Git и GitHub

      При работе в Visual Studio Code с репозиторием необходимо использовать отдельные средства.

      Icon Информация Доступ из
      Команды Git в палитре команд F1
      Icon for Source control. Расширение системы управления версиями Панель действий
      Icon for GitHub PRs and Issues Расширение запросов на вытягивание и сообщений о проблемах на GitHub Панель действий
      Расширение репозиториев GitHub Вы можете быстро и без труда открыть репозиторий GitHub. Для этого можно выполнить поиск репозиториев GitHub и выбрать команду «Открыть репозиторий» в палитре команд, нажать клавишу F1 или выбрать команду Open GitHub Repository. (Открыть репозиторий GitHub) из удаленного индикатора (зеленая кнопка слева в нижнем углу строки состояния).

      Следующие шаги

      • Узнайте о развертывании веб-приложения
      • Работа с GitHub в Visual Studio Code
      • Использование Visual Studio Code с другими поставщиками систем управления версиями

      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. Нужно выбирать.

      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. Форки

      Работаем с репозиториями в Git

      Одна из самых распространенных систем управления версиями – Git. Ее ядро добавляет в систему ряд консольных команд, предназначенных для управления репозиториями. В самих же репозиториях хранятся важные каталоги, конфигурационные файлы, журналы и прочие связанные элементы.

      Далее я расскажу, как создать, клонировать и удалить эти репозитории.

      Следующие инструкции предназначены для тех, кто уже установил Git на свой сервер. Если вы еще не сделали этого, используйте руководство с GitHub, которое поможет разобраться с выполнением поставленной задачи.

      Создание Git-репозитория

      Сначала рассмотрим создание репозитория. Представим, что у вас уже есть папка для хранения файлов, но она еще не находится под контролем Git.

      Откройте «Командную строку‎» (Windows) или Терминал (Linux/macOS) и перейдите по пути данной папки.

      Команда для перехода по пути установки Git-репозитория

      В Linux выполните команду:

      cd /home/user/directory 

      В macOS :

      cd /Users/user/directory

      В Windows:

      cd C:/Users/user/directory

      Остается только ввести нижеуказанную команду, чтобы завершить первый этап.

      git init

      Команда для установки локального Git-репозитория

      Благодаря этой команде создается структура подкаталога со всеми необходимыми файлами. Кстати, все они расположены в подпапке с названием .git . Пока что проект не находится под контролем учета версий, поскольку в него добавлены только нужные элементы для работы Git. Для добавления файлов в репозиторий будем использовать git add. Команда git commit является заключительной:

      git add git commit -m 'initial project version'

      Теперь у вас есть Git-репозиторий со всеми необходимыми составляющими и отслеживаемыми файлами.

      Комьюнити теперь в Телеграм
      Подпишитесь и будьте в курсе последних IT-новостей

      Клонирование существующего репозитория

      Второй вариант создания директории для контроля версий – копирование существующего проекта с другого сервера. Это актуально, когда осуществляется доработка готового проекта или вы желаете внедрить его компоненты в свой. В этом поможет команда git clone , о которой и пойдет речь далее.

      При использовании упомянутой команды вы получаете клоны всех версий файлов, а значит, можете использовать любые из них, если что-то пойдет не так. Это же пригождается, когда требуется вернуть предыдущую версию проекта, что осуществимо благодаря файлам, помещенным под версионный контроль.

      Для клонирования существующего репозитория понадобится ввести git clone . Пример такой команды вы видите ниже:

      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 через Терминал вы должны перейти к каталогу с проектом и ввести следующую команду:

      rm -rf .git

      Еще один вариант – удаление .gitignore и .gitmodules в случае их наличия. Тогда команда меняет свой вид на:

      rm -rf .git*

      Остается только убедиться в отсутствии скрытой папки, которая может помешать инсталляции новой. Для этого существует простая команда ls -lah , выполнить которую необходимо с указанием того же каталога.

      Только что мы разобрались с основами создания, клонирования и удаления Git-репозитория. Удачи!

      Копирование из одного приватного репозитория в другой

      есть личный приватный github репозиторий. Там проект, который писал для организации. На github Зарегистрировал новый приватный репозиторий для организации. Как клонировать все коммиты, ветки со своего репозитория на репозиторий организации? Мне нужно скопировать весь проект на новый репозиторий.

      Отслеживать
      68k 218 218 золотых знаков 79 79 серебряных знаков 221 221 бронзовый знак
      задан 18 фев 2021 в 4:53
      Серик Оспанов Серик Оспанов
      79 1 1 серебряный знак 6 6 бронзовых знаков

      1 ответ 1

      Сортировка: Сброс на вариант по умолчанию

      Самый простой, известный мне способ — это подменить/добавить origin.

      Клонируете себе репозиторий. Потом добавляете новый origin

      git remote add new_origin [email protected]:User/UserRepo.git. 

      и отправляете в новый репозиторий.

      git push new_origin 

      и готово. У этого способа есть один большой плюс — можно жить на два репозитория. Иногда это бывает супер-супер удобно, особенно при переезде с одного репозитория в другой, который не происходит в один миг. Главное, что нужно помнить, что теперь ветки могут жить в двух репозиториях и они не всегда будут полностью синхронизированы.

      Что бы специфицировать, в какую ветку в какой репозиторий отправить, просто пишите ‘имя origin:имя ветки’.

      Но есть ещё один способ. Оказывается, в гите есть прям команда для Вашего случая.

      git push --mirror [email protected]/myrepo.git 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *