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

Git clone как пользоваться

  • автор:

A3.2 Приложение C: Команды Git — Клонирование и создание репозиториев

Существует два способа создать Git репозиторий. Первый — клонировать его из существующего репозитория (например, по сети); второй — создать репозиторий в существующем каталоге.

git init

Чтобы превратить обычный каталог в Git репозиторий и начать версионировать файлы в нём, просто запустите git init .

Впервые мы продемонстрировали эту команду в разделе Создание Git-репозитория главы 2 на примере создания нового репозитория для последующей работы с ним.

Мы немного поговорили о смене названия ветки по умолчанию с «master» на что-нибудь другое в разделе Удалённые ветки главы 3.

Мы использовали эту команду для создания чистого репозитория для работы на стороне сервера в разделе Размещение голого репозитория на сервере главы 4.

Ну и наконец мы немного покопались во внутренностях этой команды в разделе Сантехника и Фарфор главы 10.

git clone

На самом деле git clone работает как обёртка над некоторыми другими командами. Она создаёт новый каталог, переходит внутрь и выполняет git init для создания пустого репозитория, затем она добавляет новый удалённый репозиторий ( git remote add ) для указанного URL (по умолчанию он получит имя origin ), выполняет git fetch для этого репозитория и, наконец, извлекает последний коммит в ваш рабочий каталог, используя git checkout .

Команда git clone используется в десятке различных мест в этой книге, но мы перечислим наиболее интересные упоминания.

Первоначальное знакомство происходит в разделе Клонирование существующего репозитория главы 2, где мы даём немного объяснений и приводим несколько примеров.

В разделе Установка Git на сервер главы 4 мы рассмотрели как использовать опцию —bare , чтобы создать копию Git репозитория без рабочей копии.

В разделе Создание пакетов главы 7 мы использовали git clone для распаковки упакованного с помощью git bundle репозитория.

Наконец, в разделе Клонирование проекта с подмодулями главы 7 мы научились использовать опцию —recursive чтобы упростить клонирование репозитория с подмодулями.

И хотя git clone используется во многих других местах в книге, перечисленные выше так или иначе отличаются от других вариантов использования.

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

Вы можете создать локальную копию удаленного репозитория Git, клонировав ее в локальную папку на компьютере. При клонировании удаленного репозитория скачиваются все фиксации во всех ветвях репозитория, если не используется —single-branch параметр клонирования. Клонирование связывает каждую ветвь в новом локальном репозитории с соответствующей ветвью в удаленном репозитории. Таким образом, при отправке, чтобы поделиться изменениями локальной ветви с вашей командой, соответствующая удаленная ветвь обновляется. Аналогичным образом при извлечении для обновления локальной ветви с изменениями, внесенными вашей командой, извлекаются обновления из соответствующей удаленной ветви. Удаленный репозиторий может быть Azure Repos репозиторием Git, репозиторием GitHub или другим размещенным репозиторием Git.

В этой статье приведены процедуры для выполнения следующих задач:

  • Получение URL-адреса клона для репозитория Azure Repos Git
  • Получение URL-адреса клона для репозитория GitHub
  • Клонирование репозитория Azure Repos Git
  • Клонирование репозитория GitHub
  • Клонирование любого репозитория Git
  • Открытие решения Visual Studio из клонированного репозитория

Общие сведения о рабочем процессе Git см. в руководстве по Azure Repos Git.

Необходимые условия для доступа к Azure Repos

  • Репозитории должны быть включены в параметрах проекта Azure DevOps. Если центр Repos и связанные страницы не отображаются, см. статью Включение или отключение службы Azure DevOps для повторного включения Репозиториев.
  • Для просмотра кода в частных проектах необходимо быть участником проекта Azure DevOps с уровнем доступа «Базовый» или выше. Для общедоступных проектов каждый может просмотреть код.
    • Если у вас нет проекта, создайте его или зарегистрируйтесь бесплатно.
    • Если вы не участник проекта, добавьте его.

    Примечание Для общедоступных проектов пользователи, которым предоставлен доступ заинтересованных лиц, имеют полный доступ к Azure Repos.

    • Репозитории должны быть включены в параметрах проекта Azure DevOps. Если центр Repos и связанные страницы не отображаются, см. статью Включение или отключение службы Azure DevOps для повторного включения Репозиториев.
    • Чтобы просмотреть код, необходимо быть участником проекта Azure DevOps с доступом уровня «Базовый» или выше. Если вы не участник проекта, добавьте его.
    • Для клонирования или участия в коде необходимо быть членом группы безопасности «Участники» или иметь соответствующие разрешения в проекте, который требуется изменить.
    • Для просмотра кода необходимо быть участником проекта Azure DevOps с доступом уровня «Базовый» или выше. Если вы не участник проекта, добавьте его.
    • Чтобы клонировать код или внести свой вклад в него, необходимо быть членом группы безопасности «Участники» или иметь соответствующие разрешения.

    Получение URL-адреса клона репозитория Azure Repos Git

    Как правило, необходимо знать URL-адрес клонирования удаленного репозитория, который требуется клонировать. URL-адрес клонирования однозначно идентифицирует удаленный репозиторий.

    Когда вы вошли в проект Azure DevOps, Visual Studio поддерживает поиск и клонирование репозиториев проектов без необходимости знать URL-адрес клонирования.

    1. В веб-браузере откройте командный проект для организации Azure DevOps, а затем выберите Файлы репозитория>, чтобы открыть представление Файлы. Снимок экрана: страница проекта Azure DevOps.
    2. В представлении Файлы выберите Клонировать , чтобы открыть всплывающее окно Клонировать репозиторий . Снимок экрана: кнопка
    3. Скопируйте URL-адрес клонирования из всплывающего окна Клонировать репозиторий . Снимок экрана: всплывающее окно

    При использовании Azure DevOps Services URL-адрес проекта имеет dev.azure.com// формат . Однако предыдущий формат, ссылающийся на этот формат, по-прежнему visualstudio.com поддерживается. Дополнительные сведения см. в статье Знакомство с Azure DevOps. Переключение существующих организаций на использование нового URL-адреса доменного имени.

    Получение URL-адреса клона репозитория GitHub

    Как правило, необходимо знать URL-адрес клонирования удаленного репозитория, который требуется клонировать. URL-адрес клонирования однозначно идентифицирует удаленный репозиторий.

    Когда вы вошли в GitHub, Visual Studio поддерживает поиск и клонирование репозиториев GitHub без необходимости знать URL-адрес клонирования.

    1. Откройте браузер и перейдите к своей учетной записи GitHub , перейдите на вкладку Репозитории и выберите репозиторий для клонирования. Снимок экрана: страница репозитория на сайте GitHub.
    2. На странице репозитория GitHub выберите Код , чтобы открыть всплывающее окно Клонировать . Скопируйте URL-адрес клона из всплывающего окна Клонировать . Снимок экрана: всплывающее окно

    Клонирование репозитория Azure Repos Git

    Выполнив вход в качестве участника проекта Azure DevOps, вы можете клонировать частные репозитории, доступные вам, и общедоступные репозитории. Visual Studio поддерживает операции поиска, клонирования и синхронизации в репозиториях, доступных через проверку подлинности.

    Вы можете клонировать общедоступный репозиторий Azure Repos Git без входа в качестве участника родительского проекта Azure DevOps. Чтобы клонировать общедоступный репозиторий Git без входа, см. статью Клонирование любого репозитория Git и подключение к проекту в Azure DevOps.

    • Visual Studio 2022
    • Visual Studio 2019 — меню Git
    • Visual Studio 2019 — командная Обозреватель
    • Командная строка Git

    Visual Studio 2022 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Git для команды Обозреватель. Дополнительные сведения см. на вкладке Visual Studio 2019 — team Обозреватель.

    1. В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий . Снимок экрана: параметр
    2. В окне Клонирование репозитория выберите Azure DevOps в разделе Обзор репозитория , чтобы открыть окно Подключение к проекту . Снимок экрана: окно
    3. В окне Подключение к проекту войдите в Azure DevOps и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Если удаленный репозиторий не отображается, выберите Добавить Azure DevOps Server, чтобы добавить сервер, на котором размещен репозиторий. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и выберите Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    Visual Studio 2019 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений.

    1. В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий . Снимок экрана: параметр
    2. В окне Клонирование репозитория выберите Azure DevOps в разделе Обзор репозитория , чтобы открыть окно Подключение к проекту . Снимок экрана: окно
    3. В окне Подключение к проекту войдите в Azure DevOps и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Если удаленный репозиторий не отображается, выберите Добавить Azure DevOps Server, чтобы добавить сервер, на котором размещен репозиторий. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и выберите Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git при сохранении пользовательского интерфейса Team Обозреватель Git. Чтобы использовать командную Обозреватель, снимитефлажокСервис> Параметры >Предварительный просмотр функций>Новый пользовательский интерфейс Git в строке меню. Функции Git можно использовать из любого интерфейса взаимозаменяемо.

    1. В командной Обозреватель выберите Подключить, чтобы открыть страницу Подключение, а затем выберите Управление подключениями>Подключиться к проекту. Снимок экрана: ссылка
    2. В окне Подключение к проекту войдите в Azure DevOps и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Если удаленный репозиторий не отображается, выберите Добавить Azure DevOps Server, чтобы добавить сервер, на котором размещен репозиторий. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и выберите Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    Сведения о клонировании репозитория Azure Repos Git из командной строки см. в статье Клонирование любого репозитория Git.

    Клонирование репозитория GitHub

    Войдя в GitHub или используя проверку подлинности SSH, вы можете клонировать частные репозитории, доступные вам, и общедоступные репозитории. Visual Studio поддерживает операции поиска, клонирования и синхронизации в репозиториях, доступных через проверку подлинности.

    Вы можете клонировать общедоступный репозиторий GitHub без входа в GitHub или проверки подлинности иным образом. Чтобы клонировать общедоступный репозиторий Git без входа, см. статью Клонирование любого репозитория Git.

    • Visual Studio 2022
    • Visual Studio 2019 — меню Git
    • Visual Studio 2019 — командная Обозреватель
    • Командная строка Git
    1. В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий . Снимок экрана: параметр
    2. В окне Клонирование репозитория выберите GitHub в разделе Обзор репозитория , чтобы открыть окно Открыть из GitHub . Снимок экрана: параметр GitHub в окне
    3. В окне Открыть из GitHub войдите в GitHub и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и нажмите кнопку Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    1. В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий . Снимок экрана: параметр
    2. В окне Клонирование репозитория выберите GitHub в разделе Обзор репозитория , чтобы открыть окно Открыть из GitHub . Снимок экрана: параметр GitHub в окне
    3. В окне Открыть из GitHub войдите в GitHub и выберите удаленный репозиторий, который нужно клонировать. Поле поиска можно использовать для фильтрации списка удаленных репозиториев. Проверьте путь к локальной папке, в которой нужно создать локальный клон, и нажмите кнопку Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    Сведения о клонировании репозитория GitHub с помощью team Обозреватель см. в статье Клонирование любого репозитория Git.

    Чтобы клонировать репозиторий GitHub из командной строки, см. статью Клонирование любого репозитория Git.

    Вы также можете клонировать репозиторий GitHub из командной строки с помощью GitHub CLI.

    Клонирование любого репозитория Git

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

    • Visual Studio 2022
    • Visual Studio 2019 — меню Git
    • Visual Studio 2019 — командная Обозреватель
    • Командная строка Git
    1. В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий . Снимок экрана: параметр
    2. В окне Клонировать репозиторий введите URL-адрес клонирования удаленного репозитория Git, который требуется клонировать, проверьте путь к локальной папке, в которой нужно создать локальный клон, а затем выберите Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    1. В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий . Снимок экрана: параметр
    2. В окне Клонировать репозиторий введите URL-адрес клонирования удаленного репозитория Git, который требуется клонировать, проверьте путь к локальной папке, в которой нужно создать локальный клон, а затем выберите Клонировать. Снимок экрана: окно

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

    Снимок экрана: параметр

    1. В командной Обозреватель выберите Подключиться, чтобы открыть страницу Подключение, а затем выберите Клонировать в разделе Локальные репозитории Git. Снимок экрана: ссылка
    2. Введите URL-адрес клонирования удаленного репозитория Git, который вы хотите клонировать, проверьте путь к локальной папке, в которой вы хотите создать локальный клон, и нажмите кнопку Клонировать. Чтобы клонировать удаленный репозиторий Git и вложенные в него репозитории Git, оставьте флажок Рекурсивно клонировать подмодули . Снимок экрана: параметры клонирования в разделе

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

    Снимок экрана: параметр

    1. Если вы еще этого не сделали, скачайте и установите Git. Включите диспетчер учетных данных Git при появлении запроса во время установки или настройте проверку подлинности SSH.
    2. В командной строке выполните команду Git clone с URL-адресом клонирования удаленного репозитория. Эта команда создаст локальный репозиторий клонирования в текущей папке.
    git clone

    Команда Git clone также позволяет указать путь к папке после URL-адреса клонирования, чтобы создать репозиторий в определенном расположении. Например:

    git clone https://fiber-teams@dev.azure.com/fiber-teams/FiberTests/_git/FiberTests C:\Repos\FiberTests 

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

    git clone --branch --single-branch 

    При клонировании удаленный репозиторий Git назначает псевдоним origin в качестве сокращенного url-адреса клонированного удаленного репозитория. Этот псевдоним часто используется в командах Git.

    Открытие решения Visual Studio из клонированного репозитория

    • Visual Studio 2022
    • Visual Studio 2019 — меню Git
    • Visual Studio 2019 — командная Обозреватель
    • Командная строка Git
    1. Выберите Файл > Открыть > проект или решение в строке меню и выберите файл решения для открытия. Снимок экрана: параметр
    2. Выбранное решение Visual Studio теперь открыто в Обозреватель решений. Снимок экрана: открытое решение в Обозреватель решений в Visual Studio.
    1. Выберите Файл > Открыть > проект или решение в строке меню и выберите файл решения для открытия. Снимок экрана: параметр
    2. Выбранное решение Visual Studio теперь открыто в Обозреватель решений. Снимок экрана: открытое решение в Обозреватель решений в Visual Studio.
    1. Щелкните правой кнопкой мыши репозиторий в представлении Подключиться Обозреватель команды и выберите открыть. Снимок экрана: клонированные репозитории в разделе
    2. В представлении Главнаяteam Обозреватель дважды щелкните файл решения в разделе Решения. Снимок экрана: файл решения в разделе
    3. Выбранное решение Visual Studio теперь открыто в Обозреватель решений. Снимок экрана: открытое решение в Обозреватель решений в Visual Studio 2019.

    В командной строке выполните следующую команду, чтобы открыть решение Visual Studio из клонированного репозитория. Эта команда не является командой Git.

    start
    start C:\Repos\FiberTests\FiberTests.sln 

    2.1 Основы Git — Создание Git-репозитория

    Если вы хотите начать работать с Git, прочитав всего одну главу, то эта глава — то, что вам нужно. Здесь рассмотрены все базовые команды, необходимые вам для решения подавляющего большинства задач, возникающих при работе с Git. После прочтения этой главы вы научитесь настраивать и инициализировать репозиторий, начинать и прекращать контроль версий файлов, а также подготавливать и фиксировать изменения. Мы также продемонстрируем вам, как настроить в Git игнорирование отдельных файлов или их групп, как быстро и просто отменить ошибочные изменения, как просмотреть историю вашего проекта и изменения между отдельными коммитами (commit), а также как отправлять (push) и получать (pull) изменения в/из удалённого (remote) репозитория.

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

    Обычно вы получаете репозиторий Git одним из двух способов:

    1. Вы можете взять локальный каталог, который в настоящее время не находится под версионным контролем, и превратить его в репозиторий Git, либо
    2. Вы можете клонировать существующий репозиторий Git из любого места.

    В обоих случаях вы получите готовый к работе Git репозиторий на вашем компьютере.

    Создание репозитория в существующем каталоге

    Если у вас уже есть проект в каталоге, который не находится под версионным контролем Git, то для начала нужно перейти в него. Если вы не делали этого раньше, то для разных операционных систем это выглядит по-разному:

    $ cd /home/user/my_project
    $ cd /Users/user/my_project
    $ cd C:/Users/user/my_project

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

    $ git init

    Эта команда создаёт в текущем каталоге новый подкаталог с именем .git , содержащий все необходимые файлы репозитория — структуру Git репозитория. На этом этапе ваш проект ещё не находится под версионным контролем. Подробное описание файлов, содержащихся в только что созданном вами каталоге .git , приведено в главе Git изнутри

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

    $ git add *.c $ git add LICENSE $ git commit -m 'Initial project version'

    Мы разберем, что делают эти команды чуть позже. Теперь у вас есть Git-репозиторий с отслеживаемыми файлами и начальным коммитом.

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

    Для получения копии существующего Git-репозитория, например, проекта, в который вы хотите внести свой вклад, необходимо использовать команду git clone . Если вы знакомы с другими системами контроля версий, такими как Subversion, то заметите, что команда называется «clone», а не «checkout». Это важное различие — вместо того, чтобы просто получить рабочую копию, Git получает копию практически всех данных, которые есть на сервере. При выполнении git clone с сервера забирается (pulled) каждая версия каждого файла из истории проекта. Фактически, если серверный диск выйдет из строя, вы можете использовать любой из клонов на любом из клиентов, для того, чтобы вернуть сервер в то состояние, в котором он находился в момент клонирования (вы можете потерять часть серверных хуков (server-side hooks) и т. п., но все данные, помещённые под версионный контроль, будут сохранены, подробнее об этом смотрите в разделе Установка Git на сервер главы 4).

    Клонирование репозитория осуществляется командой git clone . Например, если вы хотите клонировать библиотеку libgit2 , вы можете сделать это следующим образом:

    $ git clone https://github.com/libgit2/libgit2

    Эта команда создаёт каталог libgit2 , инициализирует в нём подкаталог .git , скачивает все данные для этого репозитория и извлекает рабочую копию последней версии. Если вы перейдёте в только что созданный каталог libgit2 , то увидите в нём файлы проекта, готовые для работы или использования. Для того, чтобы клонировать репозиторий в каталог с именем, отличающимся от libgit2 , необходимо указать желаемое имя, как параметр командной строки:

    $ git clone https://github.com/libgit2/libgit2 mylibgit

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

    В Git реализовано несколько транспортных протоколов, которые вы можете использовать. В предыдущем примере использовался протокол https:// , вы также можете встретить git:// или user@server:path/to/repo.git , использующий протокол передачи SSH. В разделе Установка Git на сервер главы 4 мы познакомимся со всеми доступными вариантами конфигурации сервера для обеспечения доступа к вашему Git репозиторию, а также рассмотрим их достоинства и недостатки.

    Клонирование и коммиты репозиториев – Git

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

    Git ー популярная платформа для работы с версиями проекта. Это ー распределенная система контроля версий или VCS (Version Control System). Version Control в данном случае означает, что в любой момент можно вернуться к нужной версии документа. А под распределённостью имеется ввиду, что системой может одновременно пользоваться множество специалистов.

    Кстати, Git уже давно вышел за рамки применения только в IT-компаниях. Им пользуются и в других направлениях, где есть командная работа над техническими проектами.

    Области данных в Git

    Чтобы легче понять работу команд, кратко разберем области данных. В системе Git их три: рабочая директория, индекс, репозиторий.

    Рабочая директория содержит в себе файлы, с которыми работаете. Также это могут быть файлы, только что извлеченные из истории проекта. При переключении между ветками файлы в Working Directory можно удалять или изменять. По этому поводу переживать не нужно, так как история сохранена в Git-директории. А рабочая директория ー временное место для работы с файлами.

    Git-индекс ー промежуточная локация для изменения файлов на пути от рабочей директории к репозиторию. Здесь хранятся изменения между уже зафиксированными в репозитории данными и теми, что еще лежат в рабочей директории. После выполнения команды git commit информация из индекса переходит в репозиторий с соответствующими ссылками.

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

    Базовые команды: checkout git

    В работе с репозиторием под командой checkout git (git checkout) подразумевается переключение между версиями для трех видов объектов. К ним относятся файлы, коммиты и ветки. Кроме функции переключения между branches, это действие используется и для просмотра старых commits.
    Как происходит переключение веток? Процесс аналогичен шифтингу между старыми коммитами и документами, где каталог обновляется по выбранной ветке (или ревизии). При этом новые изменения остаются в истории, потому что операция checkout git ー это не только функция чтения.

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

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