Що таке GIT?
Стаття також доступна російською (перейти до перегляду).
GIT це програмне забезпечення для управління розробкою різних IT-проектів. Це розподілена система контролю версій, створена Лінусом Торвальдсом та представлена ??світу у 2005 році. Початкове призначення GIT - контроль над написанням ядра ОС Linux. Це програмне забезпечення поширюється як вільний софт і має ліцензію GNU GPL (друга версія).
Зміст:
- Що таке система контролю версій і навіщо вона потрібна?
- Чим зумовлена ??популярність GIT у середовищі розробників ПЗ
- Особливості роботи з GIT
- Платформи GitHub та GitLab
- Висновок
Що таке система контролю версій та навіщо вона потрібна?
Навіщо потрібен GIT? Під час розробки будь-якого ПЗ проводять тестування написаного коду. Це необхідно для перевірки відповідності фактичного результату виконання набору команд очікуваному. Може існувати кілька версій певної частини чи всього проекту, які реалізують різний функціонал.
По-перше, це пов'язано зі змінними вимогами, додаванням нового функціоналу та виправленням помилок у коді. По-друге, що найважливіше, над сучасними ІТ-проектами ведуть роботу цілі команди програмістів. Виникає необхідність повертатися до ранніх версій коду, з'ясовувати, ким і коли було внесено ті чи інші зміни.
Зберігання двох і більше файлів з однаковою назвою в одному каталозі заборонено політикою файлової системи. Раніше програмісти поміщали різні версії тих самих файлів в окремі каталоги, що викликало серйозні незручності і призводило до плутанини. Системи контролю версій (VCS) забезпечують зручний спосіб зберігання кількох версій одного й того самого документа, дозволяють просто і швидко визначити будь-які внесені зміни, а також автора цих змін. Вони широко застосовуються як у галузі IT-проектів, так і в САПР. GIT є однією з найпопулярніших VCS. Основними конкурентами цього програмного продукту є Mercurial, Team Foundation Server, SVN та інші.
Чим обумовлена ??популярність GIT серед розробників ПЗ
GIT – це система, що спрощує роботу програмістів над різними проектами. Наприклад, код веб-сервісу пишуть відразу 6 програмістів, які працюють віддалено. Вони можуть вносити зміни та додавати новий функціонал у будь-який час незалежно один від одного. Система GIT зберігає всі версії файлів, що дозволяє виконати швидкий відкат до будь-якого попереднього варіанту. Вона має ряд переваг перед іншими VCS:
-
Простота масштабованості з можливістю швидкого включення в роботу інших розробників та їх виключення за потреби.
-
Можливість швидкої зміни цілої команди девелоперів. Нові розробники можуть швидко проаналізувати етапи розвитку проекту, вибрати оптимальні версії файлів та продовжити роботу з будь-якого моменту.
-
Повне збереження всієї інформації. GIT зберігає усі версії файлів проекту; повну втрату тих чи інших файлів повністю виключено.
-
Оптимальний варіант розподілу робочих навантажень між девелоперами. Це сприяє прискоренню процесу розробки ІТ-проектів.
-
Логування всіх подій, які стосуються певного проекту. Завдяки цьому можна швидко відстежити будь-який аспект робочого процесу, визначити момент внесення змін та їх особливості.
-
Атомарність кожної операції. Внесені зміни можуть вважатися вдалими чи провальними. У будь-якому випадку, вони не торкнуться всього проекту загалом. Деякі інші CVS не реалізують цей принцип, тому виникає дестабілізація коду.
-
Забезпечення криптографічної цілісності всіх даних, що зберігаються у репозиторіях GIT. Процес генерації контрольних сум проводиться як із при додаванні файлів і коли вони коммітуються, і під час їх вилучення.
-
Наявність проміжного сховища даних між робочою папкою та репозиторієм (так званий індекс). За виконання комміта дані надходять з Індексу, а чи не безпосередньо з робочої папки.
-
Ще одна перевага GIT – це простота використання ПЗ. Розробники швидко освоюють принципи роботи з цією VCS. Наприклад, після установки системи достатньо виконати просту команду git-init, щоб зробити необхідні налаштування нового сховища.
Особливості роботи з GIT
Для початку потрібна установка даної VCS, яка можлива на будь-які популярні платформи:
- У Windows необхідно завантажити програму з офіційного сайту та виконати інсталяцію з використанням візуального інтерфейсу даної ОС. Для налаштування необхідно відкрити командний рядок та ввести наступні команди: git config --global user.name "Ім'я користувача" та git config --global user.email "пошта".
- MacOS GIT вже може бути встановлений. Для перевірки необхідно відкрити термінал та ввести команду git –version. Якщо програмне забезпечення не встановлено, слід виконати дії, аналогічні для Windows.
- У Unix-системах (Debian або Ubuntu) установка виконується через термінал. Для цього послідовно вводять команди: sudo apt-get update та sudo apt-get install git. Налаштування користувача вводяться за допомогою вказаних вище команд (як для Windows і MacOS).
Основою будь-якої CVS є репозиторій. Користувач повинен вміти створювати, конфігурувати та клонувати репозиторії. Щоб вибраний каталог став репозиторієм, виконують таку команду: git init каталог. Для клонування наявного каталогу виконують команду git clone шлях_до_каталогу. Багато хостинг-провайдерів надають зручний візуальний інтерфейс для виконання зазначених вище операцій.
Структура репозиторію:
- Робочий каталог - папка, що містить файли даних;
- Індекс – проміжне сховище даних, де тимчасово зберігаються всі зміни перед їх остаточним застосуванням;
- HEAD – покажчик на останній коміт.
Суть роботи з GIT:
- Завантаження нового файлу (git add файл) або внесення змін, які зберігаються в Індексі.
- Перегляд та аналіз поточних змін, застосування до HEAD (git commit -m «коментар до комміту»).
- Надсилання всіх змін до репозиторій (git push origin ім'я_гілки)). При необхідності встановлення з'єднання між поточним репозиторієм та віддаленим сервером вводять команду git remote add origin имя_сервера.
GIT підтримує так звані гілки - розгалуження різних версій одного і того ж проекту. Це потрібно для впровадження нових функцій, які не повинні торкатися іншої логіки. Існує основна гілка та окремі гілки (у будь-якій кількості). Для їх створення використовують команду git checkout -b ім'я_гілки, а видалення - git checkout -d ім'я_гілки. Якщо потрібно повернутися до розробки головної галузі проекту, використовують команду git checkout master. Відкриття доступу до нової гілки для інших розробників можливе завдяки команді git push origin ім'я_гілки.
Будь-які оновлення або ревізії програмного забезпечення повинні мати мітки або теги для спрощення подальшої роботи з ними. З цією метою використовують команду git tag 1.1.0 перші_10_символів_commit-id. Зазначений ідентифікатор розташований у журналі, для перегляду якого використовують команду git log з різними ключами (--author, --name-status та інші).
Для скасування останніх змін у HEAD до робочого дерева використовують команду git checkout – файл. Для видалення локальних змін та прив'язки локальної гілки до даних, що зберігаються на сервері, вводять команди: git fetch origin та git reset –hard origin/master.
Описані вище команди найчастіше використовуються. Додаткові команди можна переглянути в документації GIT.
Платформи GitHub та GitLab
Дані платформи призначені непросто для зберігання вихідних кодів, а повноцінного управління всім життєвим циклом проектів, використовують GIT. Основні можливості:
- Зберігання вихідних кодів онлайн.
- Підтримка більшості різних ЯП та зручний редактор.
- Аналіз проблем проекту та їх усунення.
- Безперервна інтеграція.
- Управління рівнями доступу до певних частин проекту та багато іншого.
GitHub була створена раніше, ніж GitLab, і придбала величезну аудиторію девелоперів (близько 40 млн. активних користувачів). Незважаючи на деякі недоліки, вона, як і раніше, перевершує GitLab за ключовими параметрами. GitLab має дві важливі переваги:
- наявність власного сервісу безперервної інтеграції
- можливість встановлення на локальний сервер
Висновок
Ця стаття відповідає на запитання "Навіщо потрібен GIT?". Ця система дозволяє командам розробників вносити будь-які зміни до проектів у будь-який час, не побоюючись за отриманий результат. Без GIT практично неможливо вести розробку програмного забезпечення зі складною архітектурою. Платформи (GitHub, GitLab та інші) значно спрощують процес розробки проектів, які використовують GIT.
Використовуючи послуги VPS FREEhost.UA встановити GitLab можна всього за кілька хвилин. Достатньо у своїй панелі керування сервером вибрати шаблон VPS сервера з GitLab.