Навчальний модуль з дисципліни

Опануйте Git — стандарт контролю версій у світі IT

Повний інтерактивний гід з розподіленої системи контролю версій: ключові концепції, порівняння з централізованими системами, 10 життєво необхідних команд розробника та офіційний сертифікат опанування курсу.

bash — git-mastery ~ 80×24

$ git init project-alpha

Initialized empty Git repository in /sobko/project-alpha/.git/

$ git add .

$ git commit -m "feat: initial commit"

[main (root-commit) 7a1e04b] feat: initial commit

3 files changed, 142 insertions(+)

$ git branch -M main

$ git push -u origin main

✓ Everything up-to-date. Remote branch 'main' configured!

$

Що таке системи контролю версій та Git?

Фундаментальні принципи відстеження змін у коді та історія найпопулярнішої DVCS у світі.

Що таке система контролю версій (VCS)?

Система контролю версій (Version Control System, VCS) — це програмний комплекс, який фіксує та записує зміни у файлах протягом часу, даючи змогу повернутися до будь-якої попередньої версії проєкту, переглянути історію виправлень, дізнатися хто і чому вніс кожну правку та ефективно об'єднувати роботу багатьох розробників над єдиним кодом без ризику втратити дані.

Еволюція систем контролю:

  • Централізовані (CVCS)SVN, CVS, Perforce: репозиторій зберігається на одному центральному сервері. Якщо зв'язок втрачено або сервер виходить з ладу — розробники не можуть фіксувати зміни.
  • Розподілені (DVCS)Git, Mercurial: кожен розробник має повну локальну копію всієї історії репозиторію на своєму комп'ютері. Можна працювати офлайн, робити коміти, розгалужуватися та зливати гілки.

Історія виникнення Git

Систему Git розробив у квітні 2005 року творець операційної системи Linux — Лінус Торвальдс. Причиною став розрив відносин спільноти розробників ядра Linux з пропрієтарною системою BitKeeper.

Лінус поставив собі за мету створити нову систему з жорсткими вимогами:

  • Колосальна швидкість: застосування патчів має тривати мілісекунди.
  • Нелінійний процес розробки: підтримка тисяч паралельних гілок.
  • Повна розподіленість: відсутність єдиної точки відмови.
  • Криптографічна надійність: кожен об'єкт і коміт хешуються для захисту від випадкового або навмисного спотворення.

Архітектура збереження: Три основні стани Git

На відміну від інших систем, що записують лише різниці (deltas) між файлами, Git мислить знімками (snapshots) всього проєкту в часі.

1. Робочий каталог
Working Directory

Реальні файли на вашому жорсткому диску, які ви редагуєте в IDE.

git add
2. Зона підготовки
Staging Area (Index)

Спеціальний буферний файл, який містить інформацію про те, що саме піде в наступний коміт.

git commit
3. Репозиторій
Git Repository (.git)

База даних об'єктів Git, де збережені метадані та постійні незмінні знімки проєкту.

git checkout

Основні можливості та переваги Git

Чому Git займає понад 93% світового ринку систем контролю версій у професійній розробці.

Блискавична швидкість

Більшість операцій (перегляд історії, порівняння версій, коміти) виконуються локально з оперативної пам'яті та диска, не вимагаючи мережевих запитів.

Легке та потужне гілкування

Створення гілки в Git — це запис лише 41 байта (покажчика на коміт). Створення, перемикання та злиття гілок (merge) відбувається практично миттєво.

Повноцінна робота офлайн

Кожен клон — це повноцінний автономний репозиторій. Ви можете працювати в поїзді, літаку або без зв'язку, фіксувати зміни і синхронізувати їх пізніше.

Криптографічна цілісність

Кожен файл, каталог і коміт ідентифікується унікальним контрольно-хешовим суматором SHA-1/SHA-256. Неможливо непомітно змінити навіть кому в коді.

Гнучкість робочих процесів

Підтримка різноманітних робочих моделей розробки: GitFlow, GitHub Flow, Trunk-based development тощо, залежно від розміру команди й цілей проєкту.

Глобальна екосистема та CI/CD

Безшовна інтеграція з хмарними сервісами GitHub, GitLab, Bitbucket та автоматизованими пайплайнами тестування й деплою (DevOps).

10 базових команд роботи в системі Git

Найважливіші команди повсякденної розробки з детальними коментарями та копіюванням в 1 клік.

Показано 10 з 10 команд
01

git init

Ініціалізація

Створює новий порожній Git-репозиторій у поточній папці або повторно ініціалізує існуючий. Створює приховану директорію .git/, де зберігається вся база даних історії, посилань та налаштувань.

git init [ім'я-проєкту]
💡 Коментар: Запускається один раз на старті створення нового проєкту. Якщо виконати git init my-app, створиться папка my-app із вкладеним репозиторієм.
Корисні параметри: --bare — створення чистого репозиторію без робочої директорії (для центральних серверів).
02

git clone <url>

Клонування

Завантажує існуючий віддалений репозиторій (з GitHub, GitLab тощо) разом з усіма гілками, історією комітів та налаштовує віддалене джерело origin.

git clone https://github.com/username/repo-name.git
💡 Коментар: Створює повну робочу копію проєкту. Можна вказати HTTP або SSH посилання. Можна додати бажане ім'я локальної папки в кінці.
Корисні параметри: --depth 1 — поверхневе клонування лише останнього коміту (економить час і трафік для гігантських репозиторіїв).
03

git status

Діагностика

Відображає поточний стан робочого каталогу та індексу (staging area): показує, які файли змінені, які підготовлені до коміту, а які не відстежуються (untracked).

git status
💡 Коментар: Найчастіше використовувана команда. Дає підказки про те, на якій гілці ви перебуваєте, чи синхронізована вона з сервером і як скасувати зміни.
Корисні параметри: -s або --short — компактне однорядкове відображення статусу файлів.
04

git add <шлях>

Індексація

Додає зміни з робочої директорії до зони підготовки (Staging Area). Тільки підготовлені цією командою файли потраплять у наступний знімок (коміт).

git add .
💡 Коментар: Крапка . додає всі нові та модифіковані файли з поточної папки. Для додавання конкретного файлу вказують його ім'я: git add index.html.
Корисні параметри: -p або --patch — інтерактивне додавання окремих фрагментів (hunks) коду всередині одного файлу.
05

git commit -m "<повідомлення>"

Фіксація

Фіксує проіндексовані зміни у локальному репозиторії, створюючи постійний знімок із унікальним SHA-хешем, авторкою/автором, часом та супровідним повідомленням.

git commit -m "feat: додати навігаційне меню та стилі"
💡 Коментар: Повідомлення має бути лаконічним і зрозумілим. Рекомендується використовувати Conventional Commits (feat:, fix:, docs:, refactor:).
Корисні параметри: -am "повідомлення" — об'єднує add і commit для вже відстежуваних файлів; --amend — редагування останнього коміту.
06

git branch

Гілкування

Служить для перегляду списку локальних гілок, створення нової гілки, її перейменування або безпечного видалення після злиття.

git branch -M main
💡 Коментар: Без аргументів команда виводить список усіх локальних гілок із зірочкою * біля поточної активної гілки.
Корисні параметри: -a — показати всі гілки (включаючи віддалені); -d <назва> — видалити об'єднану гілку; -M <нове-ім'я> — примусово перейменувати.
07

git switch <гілка>

Перемикання

Перемикає робоче дерево на вказану гілку (сучасна альтернатива багатофункціональній команді git checkout, впроваджена в Git 2.23 для зручності).

git switch -c feature/login-page
💡 Коментар: Прапорець -c (або -b в checkout) одночасно створює нову гілку і відразу перемикається на неї. Для повернення на попередню гілку можна ввести git switch -.
Аналог checkout: git checkout -b feature/login-page — класичний синтаксис, що підтримується в усіх версіях Git.
08

git merge <гілка>

Злиття

Об'єднує історію вказаної гілки з поточною активною гілкою. Якщо зміни не перетинаються, виконується швидке злиття (fast-forward) або створюється новий merge-коміт.

git merge feature/login-page
💡 Коментар: Перед злиттям необхідно перемкнутися на цільову гілку (наприклад, main), і вже з неї викликати злиття робочої гілки. Якщо виникає конфлікт (merge conflict), Git позначить маркерами спірні рядки.
Корисні параметри: --no-ff — примусово створити окремий merge-коміт навіть при можливості fast-forward; --abort — скасувати злиття під час конфлікту.
09

git push <remote> <branch>

Публікація

Вивантажує всі нові локальні коміти поточної гілки на віддалений сервер (наприклад, у репозиторій на GitHub), роблячи їх доступними команді.

git push -u origin main
💡 Коментар: Параметр -u (upstream) пов'язує локальну гілку з віддаленою, після чого в майбутньому достатньо писати просто git push.
Корисні параметри: --tags — відправити створені теги/релізи; --force-with-lease — безпечний примусовий push у власну робочу гілку.
10

git pull

Синхронізація

Отримує (fetch) останні зміни з віддаленого репозиторію та автоматично зливає (merge) їх у поточну локальну гілку. По суті поєднує команди git fetch + git merge.

git pull origin main
💡 Коментар: Рекомендується виконувати перед початком кожного робочого дня або перед створенням нової фічі, щоб завжди базуватися на актуальному стані коду колег.
Корисні параметри: --rebase — замість створення зайвих merge-комітів перебазувати локальні коміти поверх свіжозавантажених для збереження чистої лінійної історії.

Сертифікат проходження курсу по Git

Офіційне підтвердження здобутих практичних навичок роботи з розподіленою системою контролю версій.

GIT MASTERY ACADEMY PROFESSIONAL VERSION CONTROL CERTIFICATION
ID: GIT-CERT-2026-SBK9842
СЕРТИФІКАТ ПРО УСПІШНЕ ЗАВЕРШЕННЯ КУРСУ

CERTIFICATE OF COMPLETION

Цим документом засвідчується, що

Собко Олексій

успішно пройшов(-ла) практичний курс навчання за програмою:

«Основи роботи з розподіленою системою контролю версій Git та платформою GitHub»

Опановані компетенції: Архітектура DVCS, життєвий цикл файлів, робота з гілками та злиття (Branching & Merging), вирішення конфліктів, віддалена синхронізація, командна взаємодія та практичне застосування базових команд Git.

Джерела інформації та корисні ресурси

Авторитетна література, офіційні посібники та інтерактивні тренажери для подальшого поглиблення знань.

Офіційна книга

Pro Git (Скотт Шакон, Бен Страуб)

«Біблія Git» від авторів платформи GitHub з перекладом українською мовою. Детальний опис нутрощів Git та складних сценаріїв.

git-scm.com/book/uk ➔
Інтерактивний тренажер

Learn Git Branching (українська локалізація)

Найкращий візуальний симулятор роботи з гілками, rebase, cherry-pick та merge у браузері з покроковими завданнями.

learngitbranching.js.org ➔
Документація розробника

GitHub Documentation

Офіційні посібники з підключення SSH-ключів, оформлення Pull Requests, роботи з issues, форками та GitHub Actions.

docs.github.com ➔
Навчальні гайди

Atlassian Git Tutorials

Чудові ілюстровані статті про різницю між Git Merge і Rebase, стратегії Gitflow, вирішення конфліктів та роботу з git stash.

atlassian.com/git ➔
Офіційний довідник

Git Reference Manual

Повний технічний опис кожної команди Git з усіма можливими опціями, прапорцями та конфігураційними параметрами.

git-scm.com/docs ➔
Практична шпаргалка

Git Flight Rules (Шпаргалка дій при помилках)

«Що робити, якщо все пішло не так у Git»: покрокові рецепти скасування комітів, повернення видалених гілок та відновлення коду.

github.com/.../git-flight-rules ➔
Команду скопійовано в буфер!