Клонирование ветки Git: пошаговое руководство

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

Git, система контроля версий, позволяет разработчикам программного обеспечения делать то же самое с кодом с помощью “веток”. Каждая ветка — это отдельный путь разработки, позволяющий вам вносить изменения, не затрагивая основную кодовую базу.

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

Давайте начнем с краткого ответа для тех, кто спешит. После этого мы углубимся в детали.

Краткий ответ: Как клонировать конкретную ветку

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

git clone --single-branch --branch <branch_name> <repository_url>

Замените <branch_name> на имя желаемой ветки и <repository_url> на URL репозитория. Этот приказ создает локальную копию указанной ветки, позволяя немедленно сфокусироваться на разработке в этой ветке.

Пример

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

  1. main: У default branch два текстовых файла.
  2. add-new-file: branch, где добавлен третий файл.
  3. modify-file: branch, где второй файл был изменен.

Так мы можем клонировать branch add-new-file:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

Что такое git clone?

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

git clone <repository_url>

Чтобы клонировать примерный репозиторий, мы можем выполнить следующую операцию:

git clone https://github.com/fran-aubry/git-clone-example.git

После выполнения этого команды все ветви будут скопированы на ваш локальный компьютер. Тем не менее, сразу visible only one branch’s files, называемая the checked-out ветвь. после клонирования репозитория, default branch (называется, как main или master) – это branch, которая is checked out.

Изменение ветвей

После полной клонировки можно перейти (checkout) на нужный ветвь, используя git checkout команду. Например, для перехода на ветвь modify-file следует выполнить следующий код:

git checkout modify-file

Глубина клонирования

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

Команда git clone, используемая без опций, скачивает каждую ветку и все коммиты из репозитория на локальный компьютер. В зависимости от размера проекта, это может занять значительное пространство на локальном хранении. Если вы знаете, что вам не нужна вся история, вы можете использовать опцию --depth для указания количества коммитов (или снимков), которые вы хотите склонировать.

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

git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git

Склонение определенной ветки

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

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

Вы можете указать git клонировать один лишь ветвь, добавив --single-branch и --branch аргументы, затем имя ветви:

git clone --single-branch --branch <branch_name> <repository_url>

Давайте разложим эту команду:

  • git clone: Эта команда git базисна, используемая для копирования репозитория с удаленного источника на ваш локальный компьютер.
  • --single-branch: Эта опция указывает Git клонировать только одну ветвь. Если ветвь не указана, будет клонирована default branch.
  • --б랜ч <имя_бранча>: Эта опция указывает бранч, который требуется клонировать. <имя_бранча> – это имя бранча, которое требуется клонировать.
  • <URL_репозитория>: Это URL репозитория.

 Примерно, чтобы клонировать только modify-file бранч из нашего репозитория, можно выполнить следующую операцию:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

Как работать с клонированным бранчем

Работая с веткой, вам нужно выполнить три основных операции:

  1. Сохранение текущей работы путем создания снимка текущего состояния.
  2. Загрузка ваших изменений, чтобы все имели к ним доступ.
  3. Загрузка изменений других людей и их слияние с вашими.

Сохранение ваших изменений с помощью git commit

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

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

Чтобы зафиксировать свои изменения в git, вы используете команду git commit. Однако перед фиксацией изменений git должен знать, какие файлы вы хотите включить в фиксацию. Вы указываете файлы, которые должны быть сохранены, с помощью команды git add. Синтаксис этой команды следующий:

git add <path_to_file>

В этом синтаксисе <path_to_file> – это путь к файлу, который вы хотите зафиксировать. Например, если мы находимся в ветке modify-file из нашего примера репозитория и добавили параграф в file2.txt, вы добавите этот файл, выполнив:

git add file2.txt

После добавления всех фалов, которые вы хотите включить в ваше коммит, вы можете продолжить коммитинг, выполняя:

git commit -m <message>

Здесь аргумент <message> должен быть коротким сообщением в двойных кавычках, кратко описывающим изменения. Например:

git commit -m "Add paragraph"

Заметки о сообщениях коммитах следующие. Они необходимы для обеспечения ясности и понимания между всеми участниками проекта:

  • Использовать imperativo: Запускайте сообщение коммита с глаголом в imperativo (например, “Add,” “Fix,” “Update”). Например, вместо “Added new feature,” напишите “Add new feature.”
  • Короткий, но описательный:Сообщение должно быть коротким, лучше всего не более 50 символов. Однако приоритетом является ясность в описании изменений. Вместо “Изменил/ась stuff”, напишите “Обновил/ась стили для navigation bar”.
  • Избегайте общих сообщений:Избегайте неясных сообщений, таких как “Исправляем ошибки” или “Улучшаем качество”. Instead, be specific: “Исправляем ошибку в валидации входа” или “Улучшаем читабельность документации”.

Загрузка ваших изменений с помощью git push

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

Базовая синтаксическая структура команды push в Git:

git push <remote> <branch>

Давайте разложим ее:

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

Вот несколько общих сценариев использования команды git push:

  • Отправка изменений из текущей ветки: git push
  • Передача изменений с определенного узла: git push origin <узел>

Загрузка изменений с помощью git pull

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

Чтобы загрузить коммиты других людей, мы используем команду git pull.

git pull <remote> <branch>

Вот что делает каждое из этих параметров:

  • <удаленный репозиторий>: Это имя удаленного репозитория, с которого вы хотите извлечь данные. по умолчанию, этот репозиторий называется origin.
  • <ветвь>: Это имя ветви, с которой вы хотите извлечь изменения. Если она не указана, Git использует текущую ветвь вместе с ее веткой-родителем.

Вот несколько общих сценариев использования команды git pull:

  • Извлечение изменений с текущей ветви: git pull
  • Извлечение изменений с определенной ветви: git pull origin <ветвь>

Цикл работы Commit-pull-push

Используя Git, рекомендуется периодически выполнять pull-update, чтобы убедиться, что локальный分支 остается актуальным. Советую следовать следующим лучшим практикам:

  • Перед началом вашего труда выполните pull-update для текущего branch, чтобы убедиться, что вы работаете на последней версии.
  • COMMIT часто, убедившись, что каждый commit сосредоточен на малых, логически связанных изменениях.
  • После внесения нескольких изменений и создания COMMIT’а, выполните pull-update еще раз, чтобы обновить ваш branch, если кто-то еще сделал параллельные обновления.
  • В конечном итоге ваши изменения отправите в удаленный репозитарий.

Git Конфликты

При выполнении команды git pull для загрузки изменений из удаленного репозитория может возникнуть ситуация, когда другой коммит изменил те же строки, что и ваши локальные коммиты. Git старается автоматически слиять изменения и, в большинстве случаев, успешно это делает. Например, если изменения произведены в различных частях同一 файла, Git может гладко слиять их, поскольку коммиты затрагивают различные секции.

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

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

GitHub Download

В некоторых сценариях вам нужна локальная копия репозитория для использования без намерения вносить изменения. Если это публичный репозиторий, нет необходимости устанавливать Git на ваш локальный компьютер. Вы можете напрямую скачать репозиторий с GitHub, нажав на кнопку Code, а затем на кнопку Download Zip, как показано ниже:

Заключение

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

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

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

Source:
https://www.datacamp.com/tutorial/git-clone-branch-tutorial