Git Clone Branch - как клонировать конкретную ветку

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

С тех пор, как Линус Торвальдс (известный создатель ядра операционной системы Linux) создал Git в 2005 году для разработки ядра Linux, он стал наиболее широко используемой современной системой управления версиями в мире.

В этой статье я познакомлю вас с рабочими процессами Git clone и Git branch и покажу вам, как вы можете клонировать конкретную ветку в зависимости от ваших потребностей. Давайте начнем! ?

Предпосылки

  • Базовые знания терминала
  • Возможность набирать команды в терминале
  • Git установлен (я все равно покажу, как)
  • Аккаунт GitHub
  • Улыбка на твоем лице (Подними эту улыбку, друг?)

Краткое введение в Git и GitHub

Согласно Википедии,

Git - это распределенная система контроля версий, предназначенная для отслеживания изменений проекта (кода) при разработке программного обеспечения. Он предназначен для обеспечения координации, сотрудничества, скорости и эффективности среди разработчиков.

GitHub, с другой стороны, представляет собой веб-хостинг для управления версиями с помощью Git. Он предлагает все функции Git для распределенного контроля версий и управления исходным кодом, а также добавляет дополнительные функции для компьютерного кода.

Как установить Git в Windows

Загрузите и установите последнюю версию установщика Git для Windows здесь.

Как установить Git в Linux

Вот команды, основанные на вашем дистрибутиве Linux:

Debian или Ubuntu

sudo apt-get update sudo apt-get install git

Fedora

sudo dnf install git

CentOS

sudo yum install git

Arch Linux

sudo pacman -Sy git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

Как установить Git на Mac

Загрузите и установите последнюю версию установщика Git для Mac здесь.

Или вы можете ввести эту команду:

brew install git

Теперь, когда у нас установлен Git, перейдем к руководству.

Введение в Git Clone

Git позволяет вам управлять и версировать ваш проект (ы) в «репозитории». Этот репозиторий хранится на веб-хостинге для управления версиями, например GitHub.

Затем вы можете клонировать этот репозиторий на свой локальный компьютер и иметь все файлы и ветки локально (скоро я расскажу больше о ветвях).

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

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Введение в ветки Git

При работе над проектом у вас, вероятно, будут другие функции. И несколько участников будут работать над этим проектом и его функциями.

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

Ветвление - это основная концепция Git, которая также используется в GitHub для управления рабочими процессами разных версий одного проекта. masterВетвь всегда ветвь по умолчанию в хранилище , которое наиболее часто считается «производство и развертываемых код». Новые ветки вроде passwordless-authили refactor-signup-uxмогут быть созданы из masterветки.

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

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

Итак, когда вы клонируете репозиторий, вы клонируете его masterи все другие ветки. Это означает, что вам придется проверить другую ветку самостоятельно.

Допустим, ваша задача в проекте - поработать над функцией добавления аутентификации без пароля на панель управления пользователя. И эта фича есть в passwordless-authветке.

Вам действительно не нужна masterветка, так как ваша «функциональная ветка» будет добавлена masterпозже. Как же тогда клонировать эту passwordless-authветку, не загружая все другие ветки с «кучей файлов, которые вам не нужны»?

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

  • мастер
  • разработчик
  • постановка
  • пароль без пароля

В Nextjs любой файл внутри папки pages/apiсопоставляется с /api/*путем и будет рассматриваться как конечная точка API, а не как page. В нашем репозитории я создал разные фиктивные API в этом каталоге, чтобы сделать каждую ветвь другой.

masterВетвь содержит файл страницы / API / hello.js в то время passwordless-authдержит файл страница / API / auth.js . Каждый файл просто возвращает фиктивный текстовый ответ. См. masterЗдесь ответ hello API (со специальным сообщением для вас?).

Клонируем репозиторий:

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

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

git branch -a

Хотите знать, откуда взялись ветви remotes / origin / .. ?

Когда вы клонируете репозиторий, вы извлекаете данные из репозитория в Интернете или с внутреннего сервера, известного как удаленный . Слово origin - это псевдоним, созданный вашим Git для замены удаленного URL-адреса (вы можете изменить или указать другой псевдоним, если хотите).

Эти ветви remote / origin / .. направляют вас обратно в исходный репозиторий, который вы клонировали из Интернета, поэтому вы все равно можете выполнять извлечение / извлечение из источника.

Итак, когда вы клонируете masterна свой компьютер, remotes/origin/masterэто исходная masterветка в Интернете, которая masterнаходится на вашем локальном компьютере. Таким образом, вы будете тянуть / толкать от и до remotes/origin/master.

Таким образом, Remote - это URL-адрес, который указывает вам на репозиторий в Интернете, а Origin - это псевдоним для этого удаленного URL-адреса.

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

Теперь давайте клонируем конкретную ветку из нашего демонстрационного репозитория. Есть два способа клонировать конкретную ветку. Вы также можете:

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

Вариант первый

git clone --branch  

или

git clone -b  

При этом вы выбираете все ветки в репозитории, проверяете ту, которую вы указали, и конкретная ветка становится настроенной локальной ветвью для git pushи git pull. Но вы все равно получили все файлы из каждой ветки. Возможно, это не то, что вам нужно, верно? ?

Давайте протестируем это:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Это автоматически настраивается passwordless-authкак локальная ветвь, но по-прежнему отслеживает другие ветки.

Вариант второй

git clone --branch  --single-branch 

или

git clone -b  --single-branch 

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

Давайте протестируем это:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Это автоматически настраивается passwordless-authкак локальная ветвь и отслеживает только эту ветвь.

Если вы запустите, cd pages/apiвы найдете auth.jsфайл в passwordless-authветке, как и ожидалось от предыдущей установки.

Вывод

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

По одному, да? ✌?