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

Обновлено: 03.07.2024

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

Система Git появилась, как средство управления исходными текстами в операционной системе Linux и завоевала множество поклонников в среде Open Source.

Сервис Github предоставляет хостинг (хранение) исходных текстов как на платной, так и на бесплатной основе. Это одна из крупнейших систем, которую любят Open Source пользователи. Основное отличие платной версии — это возможность создания частных репозиториев (хранилищ) исходных текстов и если вам скрывать нечего, то можете спокойно пользоваться бесплатной версией.

После того, как вы начали работу над проектом и написали какой-то работающий прототип, у вас появится желание сохранить результаты работы. Это так же может быть полезно в случае, если вы захотите продолжить работу на другом компьютере. Самое простое решение — это сохранить все на флешке. Этот вариант неплохо работает, но если есть подключение к интернету (а сейчас у кого его нет), то удобно воспользоваться системами Git/Github.

В этой статье будут описаны базовые сценарии использования систем Git/Github при работе над проектом в среде Linux с помощью командной строки. Все примеры проверялись на системе с Linux Ubuntu 14.04 и Git 1.9.1. Если вы пользуетесь другим дистрибутивом, то возможны отличия.

Создание локального репозитория

Предположим, что ваш проект находится в папке /home/user/project. Перед тем, как сохранять исходники, можно посмотреть, нет ли временных файлов в папке с проектом и по возможности их удалить.

Для просмотра папки удобно воспользоваться командой tree, которая покажет не только содержимое каждой папки, но и древовидную структуру директорий.

Часто временные файлы содержат специфические суффиксы, по которым их легко обнаружить и в последствии удалить. Для поиска таких файлов можно воспользоваться командой find. В качестве примера посмотрим, как найти все файлы, которые генерируются компилятором Python и имеют расширение .pyc

Переходим в папку с проектом /home/user/project:


И показываем список файлов с расширением .pyc:


Эта команда выведет список всех файлов с расширением .pyc в текущей директории и в ее поддиректориях. Для удаления найденных файлов, достаточно добавить ключ -delete к этой команде:


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

Создадим локальный репозиторий в папке с проектом:


После выполнения этой команды появится новая папка с именем .git. В ней будет несколько файлов и поддиректориев. На данный момент система управления версиями еще не видит наших файлов.

Добавление файлов в локальный репозиторий

Для добавления файлов используется команда:


После выполнения команды, файл readme будет добавлен в систему управления версий (конечно если он уже был то этого в проекте). При добавлении файла генерируется хеш значение, которое выглядит примерно так:


Добавленные файлы хранятся в папке .git/objects/xx/yyyyyyyy, при этом первые 2 цифры хеша ипользуются для указания директории, а остальное хеш значение является именем файла. Наш добавленный файл будет находится здесь:


Что легко увидеть с помощью команды:


Сам файл является архивом, который легко распаковать и вывести на экран, указав полное значение хеша.


Для того, чтобы добавить все файлы из текущей директории введите:


Если нужно добавить файлы из текущей директории и из всех поддиректориев, то используйте:


Для того, чтобы в систему не попадали временные файлы, можно их занести в файл .gitignore, который нужно создать самостоятельно и разместить в корневом каталоге проекта (на том же уровне, что и .git директория).

Например, если в в файл .gitignore добавить следующую строчку *.pyc, то все файлы с расширением .pyc не будут добавляться в репозиторий.

После добавления файлов, все изменения находятся в так называемой staging (или cached) area. Это некоторое временнное хранилище, которое используется для накопления изменений и из которого создаются собственно версии проектов (commit).

Для просмотра текущего состояния можно воспользоваться командой:


После выполнения команды мы увидим, что в stage area находится наш файл:


Если вы продолжите вносить изменения в файл readme, то после вызова команды git status вы увидите две версии файла.


Чтобы добавить новые изменения достаточно повторить команду. Команда git add не только добавляет новые файлы, но и все изменения файлов, которые были добавлены ранее.


Можно отменить добавления файла readme в staging area с помощью команды:


После выполнения команды, файл readme отметится, как неизмененный системой.

Создание версии проекта

После того, как мы добавили нужные файлы в staging area мы можем создать версию проекта. С помощью команды:


Каждая новая версия сопровождается комментарием.

После коммита, мы сможем найти два новых объекта внутри .git репозитория.


Посмотрим, что внутри:


Ключ -t показывает тип объекта. В результате мы видим:


Для второго объекта:


Для самого первого файла:


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


Ключ --no-edit нужен, чтобы не вводить заново комментарий.

Можно просмотреть изменения, которые вы внесли последним коммитом:


Ключ --name-only нужен, чтобы показывать только имена измененный файлов. Без него по каждому измененнному файлу будет выдан список всех изменений.

Если вы продолжили работать и изменили только те файлы, которые были уже добавлены в систему командой git add, вы можете сделать коммит одной командой:


Для просмотра списка всех коммитов, воспользуйтесь командой:


Ключ --oneline нужен, чтобы уменьшить количество информации выдаваемой на экран. С этим ключем каждый коммит показывается в одну строчку. Например:


Для того, чтобы просмотреть изменения по конкретному коммиту, достаточно в команду git show добавить хеш значение коммита, которое можно получить с помощью предыдущей команды.


Для отмены последнего коммита (кроме самого первого) можно воспользоваться следующей командой:


Для того чтобы удалить все файлы в папке, которые не относятся к проекту и не сохранены в репозитории, можно воспользоваться командой:

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

После регистрации нажимаем кнопочку "+" и вводим название репозитория. Выбираем тип Public (репозиторий всегда Public для бесплатной версии) и нажимаем Create.

В результате мы создали репозиторий на сайте Github. На экране мы увидим инструкцию, как соединить наш локальный репозиторий со вновь созданным. Часть команд нам уже знакома.

Добавляем удаленный репозиторий (по протоколу SSH) под именем origin (вместо origin можно использовать любое другое имя).


Можем просмотреть результат добавления с помощью команды:


Если все было правильно сделано, то увидим:


Для того, чтобы отменить регистрацию удаленного репозитария введите:


Следующей командой вы занесете все изменения, которые были сделаны в локальном репозитории на Github.


Ключ -u используется для того, чтобы установить связь между удаленным репозиторием github и вашей веткой master. Все дальнейшие изменения вы можете переносить на удаленный репозиторий упрощенной командой.

Перенос репозитория на другой компьютер

После того, как репозиторий был создан на Github, его можно скопировать на любой другой компьютер. Для этого применяется команда:


Результатом выполнения этой команды будет создание папки project в текущем каталоге. Эта папка также будет содержать локальный репозиторий (то есть папку .git).

Так же можно добавить название папки, в которой вы хотите разместить локальный репозиторий.

Работа с одним репозиторием с разных компьютеров

С одним репозиторием с разных компьютеров может работать несколько разработчиков или вы сами, если например работаете над одним и тем же проектом дома и на работе.

Для получения обновлений с удаленного репозитория воспользуйтесь командой:


Если вы изменили ваши локальные файлы, то команда git pull выдаст ошибку. Если вы уверены, что хотите перезаписать локальные файлы, файлами из удаленного репозитория то выполните команды:


Вместо github подставьте название вашего удаленного репозитория, которое вы зарегистрировали командой git push -u.

Как мы уже знаем, для того чтобы изменения выложить на удаленный репозиторий используется команда:


В случае, если в удаленном репозитории лежат файлы с версией более новой, чем у вас в локальном, то команда git push выдаст ошибку. Если вы уверены, что хотите перезаписать файлы в удаленном репозитории несмотря на конфликт версий, то воспользуйтесь командой:


Иногда возникает необходимость отложить ваши текущие изменения и поработать над файлами, которые находятся в удаленном репозитории. Для этого отложите текущие изменения командой:


После выполнения этой команды ваша локальная директория будет содержать файлы такие же, как и при последнем коммите. Вы можете загрузить новые файлы из удаленного репозитория командой git pull и после этого вернуть ваши изменения которые вы отложили командой:

Клонирование в Git — это процесс создания идентичной копии удаленного репозитория Git на локальную машину.

 git Clone

Когда мы клонируем репозиторий, все файлы загружаются на локальную машину, но удаленный репозиторий git остается неизменным. Внесение изменений и фиксация их в локальном репозитории (клонированном репозитории) никак не повлияет на удаленный репозиторий, который вы клонировали. Эти изменения, внесенные на локальном компьютере, могут быть синхронизированы с удаленным хранилищем в любое время, когда пользователь захочет.

Как работает клонирование в Git?

Многие люди хотят создать общий репозиторий, чтобы позволить команде разработчиков публиковать свой код на GitHub / GitLab / BitBucket и т. д. Репозиторий, загружаемый в сеть для совместной работы, называется вышестоящим репозиторием или центральным репозиторием.

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

 git Clone

Что касается приведенного выше изображения, то процесс клонирования работает на следующих этапах:

Клонирование репозитория: пользователь начинает работу с вышестоящего репозитория на GitHub. Процесс начинается с клонирования репозитория на локальную машину. Теперь у пользователя есть точная копия файлов проекта в их системе, чтобы внести изменения.

Внесите необходимые изменения: после клонирования участники вносят свой вклад в хранилище. Вклад в виде редактирования исходных файлов, приводящего либо к исправлению ошибки, либо к добавлению функциональности, либо, возможно, к оптимизации кода. Но суть в том, что все происходит в их локальной системе.

Проталкивание изменений: как только изменения будут сделаны, они могут быть перемещены в вышестоящий репозиторий.

Примечание: владелец репозитория может разрешить / запретить прямые изменения в Центральном репозитории, установить различные уведомления о любом изменении, перенесенном в центральное хранилище и многое другое.

Как использовать команду git Clone

Клонирование в Git может быть сделано на собственном репозитории или в любом другом репозитории.

Как клонировать репозиторий или использовать команду git Clone?

Клонирование репозитория из GitHub — это простой процесс. Но, прежде чем клонировать, пожалуйста, убедитесь, что у вас есть репозиторий на вашем аккаунте GitHub.

Каковы основные различия между раздвоением и клонированием?

Чтобы очистить свой разум от воздуха, если он у вас есть, давайте посмотрим, чем отличаются эти два термина:

Difference between Git Clone and Git Fork

Разветвление делается на аккаунт github, а клонирование осуществляется с использованием git. При форке репозитория вы создаете копию исходного репозитория (вышестоящего репозитория), но этот репозиторий остается в вашей учетной записи GitHub. В то же время, когда вы клонируете репозиторий, он копируется на вашу локальную машину с помощью Git.

В последнем уроке мы познакомились с командой Git fetch и Read more

В одной из последних статей мы узнали о команде Git Read more

Мы уже знаем, как вносить изменения в локальное хранилище и Read more

Команда git push при выполнении перемещает изменения, внесенные пользователем на Read more

Сегодня мы узнаем, как скопировать чужой репозиторий в наш аккаунт Read more

Все данные, доступные в локальном репозитории, могут быть загружены в Read more

Инструкция как быстро и просто сделать копию репозитория GitHub к себе на компьютер при помощи редактора Visual Studio Code. Задача буквально на три клика.

git clone

Давненько не клонировал репозитории GitHub из-за чего не сразу вспомнил как это делается. Это при том что в редакторе VSCode весь процесс занимает буквально два-три клика мышкой.

Если коротко и по делу, то весь процесс таков:

  • Берём ссылку на репозиторий GitHub
  • Нажимаем клавишу F1 и вводим команду Git: Clone
  • В поле ввода вставляем ссылку на репозиторий
  • Выбираем место куда сохранять

Теперь всё то же только уже со скриншотами.

Открываем редактор VSCode и нажимаем на клавиатуре клавишу F1 . В появившейся командной строке редактора вводим команду Git: Clone

командная строка VSCode

После запуска команды Git: Clone появляется поле ввода где просят указать ссылку на клонируемый репозиторий:

поле ввода в vscode

В это поле нужно вставить ссылку на репозиторий GitHub который нужно скопировать на компьютер. Ссылку можно взять на странице самого репозитория. Для этого нажимаем кнопку Code и в появившемся окне нажимаем кнопку скопировать url

ссылка на github

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

открыть репозиторий

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

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

В следующих процедурах будут использованы именованные частипользовательского интерфейса Visual Studio Code.

Использование палитры команд для клонирования репозитория

Чтобы приступить к работе, скачайте пример проекта, как описано ниже.

Нажмите клавишу F1, чтобы отобразить палитру команд.

В строке палитры команд введите gitcl , выберите команду Git: клонировать и нажмите клавишу ВВОД.

Команда gitcl в строке командной палитры Visual Studio Code

Если появится запрос на ввод URL-адреса репозитория, выберите параметр клонирования из GitHub и нажмите клавишу ВВОД.

Если поступает запрос на вход в GitHub, завершите процедуру входа.

Введите azure-samples/js-e2e-express-server в поле URL-адрес репозитория.

Выберите (или создайте) локальный каталог, в который нужно клонировать проект.

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

Создание ветви для изменений с помощью Git CLI

Используйте Git в палитре команд, чтобы создать ветвь.

Нажмите клавишу F1 , чтобы отобразить палитру команд.

Найдите элемент git branch и выберите Git: Create Branch .

Экран "Поиск по фразе "git branch" и выбор пункта "Git: Create Branch".

Введите имя для новой ветви. Имя ветви будет отображатся в строке состояния.

Экран "Отображение имени ветви в строке состояния".

Создание ветви из строки состояния

Выберите имя ветви в строке состояния.

Строка состояния обычно находится в нижней части Visual Studio code.

Выберите в палитре команд элемент Создание ветви.

Введите имя для новой ветви.

Введите имя для новой ветви. Имя ветви будет отображатся в строке состояния.

Экран "Отображение имени ветви в строке состояния".

Фиксация изменений с помощью Git

Изменив ветвь, зафиксируйте изменения.

Переключитесь на панель действий и выберите значок системы управления версиями или нажмите клавиши CTRL + SHIFT + G .

Добавление файла yarn.lock в Git

Отправка локальной ветви в удаленное расположение из строки состояния

В строке состояния Visual Studio Code выберите значок отправки справа от имени ветви.

Строка состояния Visual Studio Code, выделен значок отправки.

Выберите имя удаленного расположения во всплывающем окне. Если вы имеете только одно удаленное расположение, вам не будет предложено выбрать имя такого расположения.

Отправка локальной ветви в удаленное расположение из расширения "Система управления версиями"

Щелкните значок "Система управления версиями" на панели действий.

Щелкните многоточие (. ) и выберите элемент Push или Push to .

Панель системы управления версиями Visual Studio Code, выделен значок отправки.

Выберите имя удаленного расположения во всплывающем окне. Если вы имеете только одно удаленное расположение, вам не будет предложено выбрать имя такого расположения.

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

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

Щелкните значок "Система управления версиями" на панели действий.

Щелкните многоточие (. ) и выберите элемент Показать выходные данные Git.

Читайте также: