Що таке GIT та як почати працювати з ним?
У цій статті я познайомлю вас з GIT та навчу як працювати з цією технологією на прикладі створення статичних сайтів, використовуючи хостинг двох найпопулярніших безкоштовних Git-сервісів — GitHub та BitBucket.
GIT — це кросплатформна система контролю і управління версіями коду, розроблена Лінусом Торвальдсом у 2005 році. Назва “git” з англійської тлумачиться як “негідник” і пояснюється розробником із сарказмом: “Я егоїстичний негідник, а тому усі проєкти називаю на свою честь. Спочатку Linux, тепер git”.
GIT поширюється за безкоштовній основі за GNU-ліцензією і являє собою набір утиліт командного рядка. Дозволяє працювати над одним проєктом цілим командам користувачів, де кожна зміна додається у вигляді «коммітів» (commit — знімок змін). Це дозволяє відстежувати різні версії коду документа й при необхідності скасовувати зміни та повертатися до попередніх версій. Також є можливість створювати окремі гілки — «форки» (відхилення, модифікована копія проекту).
Таким чином з допомогою технології GIT максимально знижуються ризики появи багів у веб-розробці, а також втрати даних. Та й просто зручно працювати. З’являється гнучкість і можливість вести історію розробки, що є надзвичайно важливим.
Щоправда, Git — не єдина SCM-система управління версіями (Supply Chain Management). Крім неї існують такі системи як: Mercurial, Subversion, Darks, Bazaar.
Із застосуванням Git’а було розроблено чимало відомого софта, і навіть операційні системи, зокрема: Linux, GNOME, KDE, Andoid, Libre Office, Wine, PostgreSQL, Ruby on Rails, Redux Framework тощо.
GitHub
Почати застосовувати GIT на практиці можна з допомогою спеціальних Git-хостингів і репозиторіїв.
Один з них — GitHub, заснований у 2008 році трьома американськими програмістами.
У червні 2018 року проєкт GitHub був придбаний корпорацією Microsoft за $7,5 млрд:
На сьогодні, GitHub — це не просто git-хостинг, а цілий Всесвіт вихідного коду, величезна соціальна мережа IT-спеціалістів, котра налічує більше 20 мільйонів користувачів та 80+ мільйонів репозиторіїв по всьому світу.
Створення сайту на GitHub
Найкращим способом для засвоєння технології GIT, на мою думку, буде створення власного статичного сайту, використовуючи хостинг GitHub Pages.
Для початку необхідно створити новий Git-репозиторій:
В полі Repository name вписуємо свій субдомен у форматі: mywebsite.github.io
. Тут є один можливий нюанс. Субдомен вказуємо такий самий як і ваше ім’я профілю. Далі налаштовуємо як показано на скріншоті вище — не забуваємо включити Public і обов’язково Readme (він активує main branch вітку, що потрібно для відображення сайту саме у кореневій директорії). Опісля натискаємо кнопку Create repository і потрапляємо на сторінку новоствореного Git-репозиторію. Шукаємо пункт «Settings» й переходимо в налаштування, де зліва в сайд-меню обираємо розділ “Pages” (або GitHub Pages) — перевіряємо опцію Branch, повинні бути виставлені параметри main та root:
Далі в полі Theme Chooser — оберіть бажану тему (подаються на вибір шаблони на базі статичного двигунця Jekyll) для вашого сайту, наприклад:
Після того як обрали, натискаємо “Select theme” і відкриваємо свій сайт за URL-адресою: вашсайт.github.io
Має відкритися ваша сторінка.
*Покрокове створення сайтів на GitHub Pages також описано тут.
Тепер постає питання: Як же працювати з сайтом, наприклад редагувати, додавати вміст і таке інше?
Для цього існують 2 способи: перший — термінал, другий — спеціальна програма-клієнт GitHub Desktop. Я буду застосовувати термінал Linux, де утиліта git вже інтегрована в систему. Також у ролі протоколу передачі даних — буде застосовуватися SSH.
Отже, необхідно спершу згенерувати SSH-ключі (private and public key) задля зв’язку з сервером GitHub — назву ключів бажано залишати по-замовчуванню, тобто ‘id_.pub’ (інакше ключ не буде розпізнаний):
ssh-keygen -t rsa -b 4096 -C “user@email”
Приватний ключ додаємо у внутрішній SSH-агент локальної системи:
eval `ssh-agent`
ssh-add ~/privatekey
Вміст публічного ключа з розширенням .pub додаємо у налаштуваннях свого GitHub-акаунта.
Примітка: відкликати доданий ключ з SSH-агента можна командою ssh-add -D
Тепер можна клонувати репозиторій з сайтом на свій локальний комп’ютер чи сервер, де ви будете з ним надалі працювати. Для цього перейдіть у свій репозиторій, клікніть по зеленій кнопці Code і просто скопіюйте команду клонування по SSH, а потім вставте її у терміналі додавши git clone:
git clone git@github.com:user/user.github.io.git
SSH-ключ буде автоматично розпізнаний. Якщо ви призначили додаткову парольну фразу до нього, то просто введіть його.
Після вдалого клонування ви зможете перейти в репозиторій і додати перші зміни, користуючись фреймворком Jekyll (Чудова стаття як працювати з Jekyll, й взагалі навіщо він потрібен).
Тепер необхідно ці зміни синхронізувати (закоммітити) з віддаленим репозиторієм на GitHub:
git add --allgit commit -m 'коментар до дії'git push
Відбудеться зв’язок з GitHub-сервером, необхідно ввести парольну фразу до SSH-ключа (якщо така задана), тоді зміни будуть відправлені і негайно синхронізуються на сервері віддаленого репозиторію. Щоправда, іноді зміни на сайті можуть відобразитися не відразу — може спрацювати кеш. В такому випадку необхідно трохи зачекати і виконати перезавантаження веб-сторінки з очищенням кешу CTRL+F5.
Ось так відбувається робота з Git на прикладі створення статичного сайту на GitHub-хостингу.
Cheatsheet по GIT-командам від GitHub:
Bitbucket
Ще один популярний Git-хостинг, заснований Jesper Nøhr у 2008 році. У 2010-му невеличкий startup куплений австралійською компанією Atlassian, яким належать сервіси Trello та Jira.
Bitbucket дозволяє абсолютно безкоштовно створювати як відкриті, так і закриті репозиторії на основі технології GIT. А також інтегруватися з такими популярними інструментами як JIRA та SNYK.
Спробуємо знову створити власну веб-сторінку — цього разу з допомогою хостингу BitBucket Pages.
Щоб розпочати роботу, першим чином необхідно зареєструватись та створити репозиторій:
Принцип створення статичного сайту на BitBucket той самий, що й в GitHub, ім’я репозиторію має співпадати з ім’ям вашого профілю (workspaceID): workspaceID.bitbucket.io
Тепер необхідно клонувати репозиторій на локальну систему.
Генеруємо командою ssh-keygen
приватний та публічний ключі. Приватний додаємо в SSH-агент системи:
eval `ssh-agent`
ssh-add ~/privatekey
Публічний ключ додаємо у налаштуваннях акаунту — Personal settings -> SSH keys. Далі переходимо в новостворений репозиторій зі своїм сайтом, тиснемо кнопку Clone, скопіювавши посилання для протоколу SSH. Вставляємо його у командний рядок Linux:
git clone git@bitbucket.org:workspaceID/workspaceID.bitbucket.io.git
Репозиторій з сайту скопійовано — з’явиться папка сайтом. Далі по аналогії з GitHub, наповнюємо і редагуємо папку з сайтом, після чого з допомогою GIT-команд синхронізуємо зміни з віддаленим репозиторієм на Bitbucket:
git statusgit add -Agit commit -m 'comment'git push
Зачекаємо кілька хвилин, аби кеш оновився й перейдемо за URL-адресою:https://<workplaceID>.bitbucket.io
Повинен завантажитись ваш сайт. До речі, зміни в git-репозиторій можна вносити не тільки локально, а й у веб-інтерфейсі Bitbucket. Проте не забудьте опісля синхронізувати зміни зі своєю локальною директорією з допомогою команди:git pull
Корисний cheatsheet по GIT від Atlassian:
Корисні посилання:
- Git Book
- Керівництво по Git від компанії Atlassian
- Основи веб-розміти для GitHub
- Керівництво по GitHub Pages
- Керівництво по Jekyll на GitHub
- Керівництво по Jekyll
- Visual Code
- PHP IDE Storm
- Sublime Text
Автор: Cr0n