Гілка клонування Git - Як клонувати певну гілку

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

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

У цій статті я познайомлю вас із робочими процесами клонування Git та гілки та покажу, як ви можете клонувати певну гілку відповідно до ваших потреб. Давайте почнемо! ?

Передумови

  • Базові знання терміналу
  • Можливість набору команд в терміналі
  • 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. Відповідь API привіт тут (із спеціальним повідомленням для вас?).

Давайте клонуємо сховище:

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

Це дає нам доступ до всіх гілок у цьому сховищі, і ви можете легко перемикатись між ними, щоб побачити кожну версію та її файли.

git branch -a

Цікаво, звідки взялися пульти дистанційного керування / походження / .. ?

Коли ви клонуєте сховище, ви витягуєте дані з сховища в Інтернеті або внутрішнього сервера, відомого як віддалений . Слово origin - це псевдонім, створений вашим Git для заміни віддаленої URL-адреси (ви можете змінити або вказати інший псевдонім, якщо хочете).

Ці гілки віддаленого / походження / .. спрямовують вас назад до сховища джерел, яке ви клонували з Інтернету, щоб ви все ще могли виконувати витягування / натискання з джерела.

Отже, коли ви клонуєте 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 надає вам гнучкість для цього. Розтягніть м’язи і спробуйте, є багато іншого, щоб навчитися «Git».

По черзі, так? ✌?