Лекція 43. Навіщо існує контроль версій і що таке Git
Лекція 43. Навіщо існує контроль версій і що таке Git
Section titled “Лекція 43. Навіщо існує контроль версій і що таке Git”Рівень 8: Хранитель історії коду
Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.
Що ми сьогодні розкриємо
Section titled “Що ми сьогодні розкриємо”- зрозуміти проблему версій файлів
- познайомитися з repository і commit
- створити локальний Git-репозиторій
Зв’язок з попередніми лекціями
Section titled “Зв’язок з попередніми лекціями”У цій лекції ми використаємо знання про файли з лекції 17, щоб зрозуміти, навіщо існує контроль версій Git.
final_final_REAL.py — сигнал, що потрібна машина часу
Section titled “final_final_REAL.py — сигнал, що потрібна машина часу”Коли проєкт росте, копії game.py, game2.py, game_final.py, game_final_really.py перестають бути зручною історією. Незрозуміло, що змінилося, хто це зробив і до якої версії повертатися.
Version control system зберігає історію змін структуровано. Git — одна з найпопулярніших таких систем.
Repository — проєкт плюс історія
Section titled “Repository — проєкт плюс історія”Git-репозиторій містить робочі файли та службові дані Git про історію. git init створює в поточній папці прихований каталог .git.
Не видаляй .git, якщо хочеш зберегти історію репозиторію.
Commit — контрольна точка з поясненням
Section titled “Commit — контрольна точка з поясненням”Commit можна уявити як збереження гри з коментарем: «додав меню». Він фіксує стан вибраних змін і має автора, час, повідомлення та унікальний ідентифікатор.
Git не робить commit автоматично після кожного натискання клавіші. Ти сам вирішуєш, коли зміна стала логічною контрольної точкою.
Приклади
Section titled “Приклади”Приклад 1
Section titled “Приклад 1”Замість десяти копій Python-файлу можна мати один робочий файл і послідовність commits.
Приклад 2
Section titled “Приклад 2”git status — приладова панель: показує стан робочого дерева й підказує, що Git бачить.
Приклад 3
Section titled “Приклад 3”Git працює локально. Для git init, git add, git commit GitHub та Internet не потрібні.
Git-лабораторія: створюємо машину часу
Section titled “Git-лабораторія: створюємо машину часу”mkdir -p ~/marko-lab/git-time-machinecd ~/marko-lab/git-time-machineprintf 'print("Version 1")' > app.pygit initgit statusПодивися також:
ls -aТам з’явиться .git.
Місія для Марка
Section titled “Місія для Марка”Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.
- створи репозиторій лабораторії
- знайди
.gitчерезls -a - запусти
git statusі прочитай повідомлення проapp.py - намалюй аналогію «проєкт → save point → історія»
- поясни різницю між Git і просто папкою з копіями файлів
Перевір себе
Section titled “Перевір себе”- Що таке version control?
- Що створює
git init? - Що таке repository?
- Що таке commit?
- Чи потрібен GitHub для локального Git?
Терміни однією фразою
Section titled “Терміни однією фразою”- Version control system — система для збереження та організації історії змін.
- Git — найпоширений інструмент контролю версій.
- Репозиторій (repository) — проєкт плюс його збережена історія.
.git— прихований каталог, де Git зберігає службові дані.- Commit — контрольна точка змін з автором, часом, повідомленням і унікальним ідентифікатором.
git init— команда, що створює Git-репозиторій у поточній папці.git status— показує стан робочого дерева й підказує наступні кроки.
Чек-лист перед наступною лекцією
Section titled “Чек-лист перед наступною лекцією”- Чи можеш ти пояснити, що таке система контролю версій та Git?
- Чи знаєш ти, що таке репозиторій та коміт?
- Чи розумієш ти, навіщо потрібен Git для відстеження змін у коді?
Що потрібно винести з лекції
Section titled “Що потрібно винести з лекції”- Git зберігає історію проєкту структуровано
- репозиторій має службову історію в
.git - commit — усвідомлена контрольна точка, а не автоматична копія кожної миті
Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.