В отличие от старых централизованных систем контроля версий, таких как 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 предоставляет для этого гибкость. Согните мышцы и попробуйте, есть еще много чего, что нужно изучить.
По одному, да? ✌?