Git — навіщо потрібна система контролю версій
Три скляні банки з паперовими сувоями версій V1 V2 V3 на робочому столі — контроль версій коду
Ти напевно чув, що "кожен розробник повинен знати Git". Але навіщо? Хіба не можна просто зберігати файли на комп'ютері? Створювати папки project_v1, project_v2, project_FINAL, project_FINAL_REAL?
Можна. Але через тиждень ти проклянеш себе. Ось чому.
Що було до Git (і чому це був жах)
До Git розробники використовували системи на кшталт CVS і SVN. Уяви таке:
- Ти працюєш над проєктом і хочеш зберегти зміни. Робиш "commit"... і операція зависає на половині. Частина файлів збереглась, частина — ні. Твій проєкт тепер у напівзламаному стані. З CVS це траплялось регулярно
- Хочеш створити гілку для експерименту? В SVN це було настільки болюче і ризиковане, що команди уникали створення гілок. Взагалі. Всі працювали в одній гілці і молились, щоб ніхто не зламав чужий код
- Інтернет зник? В SVN ти не можеш зробити жодного збереження, поки не з'явиться зв'язок з сервером. Працюєш оффлайн? Ну, удачі
Команди буквально втрачали дні роботи через збої. Файли зникали. Конфлікти вирішувались годинами. Це був дикий захід розробки.
Як Лінус створив Git за 2 тижні
У 2005 році Лінус Торвальдс (так, той самий, який створив Linux) зіткнувся з проблемою: інструмент BitKeeper, який його команда використовувала для розробки ядра Linux, став платним.
Що зробив Лінус? Сів і написав свій інструмент. З нуля.
Хронологія вражає:
- 3 квітня — почав писати код
- 5 квітня (через 2 дні!) — Git вже міг зберігати зміни сам у себе
- 17 квітня (через 14 днів) — перший реальний merge ядра Linux через Git
Один з найважливіших інструментів у світі розробки був створений за два тижні. Коли дійсно потрібно — мотивація творить чудеса.
Що Git робить насправді
Git — це машина часу для твого коду. Уяви, що ти пишеш есе:
Без Git:
Зробив помилку → не пам'ятаю, що було до того → починаю спочатку → плачу
З Git:
Зробив помилку → повертаюсь до версії 30-хвилинної давнини → продовжую роботу → радію
Але це лише верхівка айсберга. Git також дозволяє:
- Гілки (branches) — експериментуй скільки хочеш, не зламавши робочу версію. Як чернетка, яку можна викинути або додати до основного документа
- Спільна робота — 10 людей працюють над одним проєктом одночасно, і нікому не потрібно чекати на іншого
- Історія змін — хто, коли і що змінив. Детективна робота стає простою: "ага, цей баг з'явився після ось цього коміту"
Реальний приклад: чому Git рятує
Уяви: ти робиш сайт для замовника. Все працює. Замовник просить "додай анімацію на головну сторінку". Додаєш. Тепер ламається мобільна версія.
Без Git: ти судорожно намагаєшся згадати, що саме змінив. Ctrl+Z не допомагає, бо ти вже 20 разів зберігав файл. Паніка.
З Git: git diff — бачиш всі зміни. git stash — тимчасово прибираєш їх. Перевіряєш, що все працювало до цього. Знаходиш проблему. Фіксиш. Комітиш. Йдеш пити каву.
GitHub — це не Git
Важливе уточнення, бо багато хто плутає:
- Git — це програма на твоєму комп'ютері, яка відстежує зміни
- GitHub — це сайт, де можна зберігати свої Git-репозиторії онлайн
Git — це як щоденник, який ти ведеш у себе на столі. GitHub — це сейф у банку, куди ти кладеш копію щоденника. Якщо згорить стіл — копія в безпеці.
GitHub також дає крутий бонус: портфоліо. Коли ти шукатимеш роботу, роботодавець зможе зайти на твій GitHub і побачити твій код. Це як резюме, тільки чесне — код не збрешеш.
Коли починати вчити Git?
Відразу. Серйозно. Не "коли стану досвідченішим", а з першого дня. Це як ремінь безпеки — ти не чекаєш аварії, щоб почати ним користуватись.
У нашому курсі Git — один з перших уроків. Бо краще привчити себе до правильних звичок одразу, ніж потім переучуватись.
Кожне твоє домашнє завдання, кожен проєкт, кожен експеримент — все має жити в Git. Через рік у тебе буде GitHub-профіль з десятками проєктів. І це буде найкраще портфоліо, яке можна уявити.