Git

простою мовою, без припущень про ваш досвід

Git – це така собі досконала кнопка «скасувати» для вашої роботи: він тихо запам’ятовує кожну версію ваших файлів, поки ви працюєте, тож ви завжди можете подивитися, що змінилося, повернутися до будь-якої попередньої миті й ніколи не боятися зламати щось непоправно. Він живе просто на вашому власному комп’ютері, і користуватися ним можна, ні з ким нічим не ділячись.

Відчуття, яке дає Git, вам уже знайоме – ви переживали його в інших місцях. Це відчуття від натискання Скасувати в текстовому редакторі: тиха певність, що хай би що ви щойно зробили, це можна забрати назад. Git – це те саме відчуття, тільки набагато глибше й набагато сміливіше.

У звичайному документі «скасувати» – річ неглибока: воно пам’ятає останню часинку, а щойно ви закриєте файл – забуває все. Git пам’ятає усе, назавжди, у названих вами митях – і дозволяє не просто відступити на один клік назад, а повернутися до того, як усе було минулого вівторка, порівняти тодішнє з теперішнім і братися за сміливі речі, знаючи, що додому завжди є дорога.

Чому це важливіше, ніж звучить

Майже весь страх щось робити – сайти, код, будь-що на комп’ютері – це насправді страх зламати те, що вже працює. А раптом я це зміню й не зможу повернути? Такий страх робить людей боязкими, а боязкість – кепський спосіб учитися.

Git прибирає цей страх. Щойно вашу роботу збережено в Git, ви вільні експериментувати як завгодно сміливо, бо завжди є чиста, запам’ятована версія, до якої можна повернутися. Це перетворює «я можу все зіпсувати» на «спробую – я ж завжди можу відкотитися». Уся суть саме в цьому зрушенні.

І ви можете відчути це просто зараз, у мініатюрі. Нижче – маленька листівка-проєкт. Ламайте її: змінюйте, переплутуйте, ба навіть назавжди загубіть картинку. Тоді збережіть мить, яка вам подобається (кнопка Save this moment), поламайте ще трохи – і клацніть будь-яку зі збережених митей, щоб побачити, як ваша робота повертається точно такою, якою була. Зверніть увагу, чого тут немає: тут немає кнопки «скасувати». Збережені миті – і є те скасування.

My Little Site
Saved moments
Moment 1 is saved. Nothing you break now can be lost – go ahead, try the buttons.

Оце й уся емоційна правда про Git. Усе, що нижче, – лише вивчення його слів для того, що ви вже зробили.

Два слова, які і є 90% Git

Git здається великим, але в щоденній роботі спирається на дві маленькі ідеї:

  • Commit («коміт») – зберегти знімок. Ви робите фотографію своєї роботи такою, якою вона є просто зараз, і даєте їй короткий підпис («додав головну сторінку»). Цей знімок зберігається назавжди. Коміт – це одна запам’ятована мить, до якої ви завжди можете повернутися.
  • Clone («клон») – зробити власну повну копію чийогось проєкту, щоб працювати з нею, разом з усією історією знімків.

Оце майже й усе. Решта – лише уточнення до «зроби знімок» і «піди подивися на знімки».

Він живе на вашому власному комп’ютері – інтернет не потрібен

Одна поширена плутанина, яку варто м’яко розвіяти: Git – це не GitHub. Git живе цілком на вашій машині, і йому не потрібен ані обліковий запис, ані сайт, ані взагалі інтернет. Ви можете користуватися ним наодинці, приватно, скільки завгодно довго – і ніколи нічим не ділитися.

То що ж тоді таке GitHub?

Якщо Git – це ваша приватна коробка зі знімками на вашому власному столі, то GitHub – це необов’язкова спільна полиця в інтернеті, де ви можете додатково тримати копію: щоб колега побачив вашу роботу, щоб вона мала безпечний резерв поза вашою машиною або щоб ви могли забрати собі чийсь проєкт.

GitHub (і його родичі – GitLab та інші) зручний і популярний, але це вибір поверх Git, а не вимога. Усе, що описано нижче, можна робити взагалі без облікового запису на GitHub. А коли ви таки ним користуєтеся, ваша копія може бути приватною – видимою лише вам і тим, кого ви запросите, – а не обов’язково відкритою для всього світу.

Спробуйте: увесь щоденний цикл, по-справжньому

Ось тиха втіха від Git: серцевина щоденної роботи – це буквально жменька коротких рядків, і ви можете набрати їх просто зараз на власному комп’ютері, щоб відчути, як воно працює. Ніщо тут не торкається інтернету й не змінює нічого поза текою, у якій ви перебуваєте.

Спершу, перебуваючи в теці з якимись файлами, ви кажете Git наглядати за цим проєктом:

git init

Тепер щоразу, коли захочете побачити, як стоять справи – що змінилося від часу останнього знімка, – ви питаєте:

git status

Він відповідає простими словами: ось що з’явилося, ось що змінилося. Ця команда – ваш найчастіший друг; саме так ви дивитеся, перш ніж стрибати. Запускайте її скільки завгодно: вона лише повідомляє й ніколи нічого не змінює.

Коли ви готові зберегти знімок, це два маленькі кроки. Спершу ви збираєте зміни, які хочете включити («ставите їх на підготовку»), а тоді робите фотографію («коміт») із підписом:

git add .
git commit -m "My first snapshot"

Оце й усе – мить вашої роботи, запам’ятована назавжди. Робіть так щоразу, коли доходите до точки, до якої варто мати змогу повернутися. А щоб побачити стежку з усіх знімків, які ви коли-небудь зробили:

git log

Список усіх запам’ятованих митей, найновіші згори. Цей список – ваша страхувальна сітка, зроблена видимою.

Що означають ті частини – підготовка, повідомлення, крапка
  • git add . – крапка означає «всі зміни в цій теці». Підготовка (англійською staging) – це просто Git питає: «які саме з ваших змін увійдуть у цей знімок?», щоб ви могли одні включити, а інші лишити на потім. На початку «усі» (.) – цілком добре.
  • -m "..." – той короткий підпис до знімка. Пишіть його для себе майбутнього: кілька слів про те, що ця мить містить. «Полагодив побите посилання» – це подарунок вам самим через три тижні.
  • Повернення назад – оскільки кожен коміт запам’ятано, ви завжди можете повернутися до ранішого. Команди для подорожей між знімками приходять трохи згодом у чиємусь шляху з Git, але зараз важливо втримати ось що: миті збережено, тож повернутися можна завжди.

Де це тихо стає суперсилою: спостерігати за роботою ШІ

Ось застосування, яке зараз важить дуже багато. Коли зміни у вашому проєкті вносить асистент зі штучним інтелектом, Git стає водночас вашим вікном і вашим поручнем.

Перш ніж ШІ візьметься до роботи, у вас є чистий знімок. Після того, як він попрацював, ви запускаєте git status і git log – і бачите точно, чого він торкнувся: кожен файл, кожен рядок, змінений чи доданий. Нічого не сховано. А якщо зроблене вам не подобається, ви повертаєтеся до свого попереднього знімка – і все так, ніби нічого й не було.

Отже, Git дає вам три речі, коли ШІ працює з вашим кодом: спостережуваність (ви точно бачите, що змінилося), контроль (ви вирішуєте, що лишити) і оборотність (ви завжди можете скасувати). Саме це дозволяє передавати справжню роботу швидкому асистентові й не випускати її з рук.

Отже, одним подихом

Git – це ваше безстрашне «скасувати»: він пам’ятає кожну версію вашої роботи у знімках, які ви називаєте самі, дозволяє повернутися до будь-якого з них, живе приватно на вашому власному комп’ютері й – байдуже, сміливо ви експериментуєте чи наглядаєте, як ШІ змінює ваші файли, – дає спокійну певність, що ви завжди зможете побачити, що сталося, і завжди зможете повернутися назад.