JavaRush /Курси /Claude Code SELF /Як це робиться вручну: команди git

Як це робиться вручну: команди git

Claude Code SELF
Рівень 13 , Лекція 2
Відкрита

1. Завести сейф і поставити першу точку

Олег відсуває до себе ноутбук Тьми, відкриває термінал у папці порталу. Пальці в нього впевнено бігають по клавішах — видно, що робив це вже тисячу разів.

— Отже. Модель ти вже зрозумів: main, гілка, коміт, відкат. Тепер кожне слово має свою команду. Дивись і записуй, я показую лише раз.

— Перше. Ініціалізувати Git у проєкті. Один раз на проєкт — на самому початку.

$ git init
Ініціалізовано порожній репозиторій Git у /portal/.git/

— Усе, — каже Олег. — Зʼявилася прихована папка .git, у ній Git і зберігає всю історію. Тепер він стежить за проєктом. Далі — перш ніж щось змінювати, треба оглянутися. Команда, яку я натискаю по сто разів на день:

$ git status
На гілці main
Ще немає комітів
Невідстежувані файли:
  pages/
  src/reward-flow.js
  src/leaderboard.js
  …

status — це «де я і що довкола», — пояснює Олег. — Зараз він каже: гілка main, комітів ще немає, а ось файли, які Git бачить, але ще не взяв під контроль, — «untracked», невідстежувані. Запамʼятай це слово: воно ще не раз знадобиться. Привчайся смикати status постійно: перед кожним кроком глянув — і вже знаєш, де стоїш.

— Тепер ставимо першу точку повернення — чистий портал, до всіх правок. Це два рухи. Спочатку треба сказати Git, які файли брати під контроль, — командою add:

$ git add -A

-A означає «усе в поточній папці». Ти ніби складаєш файли на стіл перед фотографом. А тепер — сам знімок, коміт:

$ git commit -m "робочий портал до правок"
[main (root-commit) a1b2c3d] робочий портал до правок
 3 files changed, 214 insertions(+)

Тьома тицяє в рядок:

— А чому в лапках?

— Це підпис до коміту. — Олег киває. — Щоб через тиждень зрозуміти, що саме було в той момент. «Робочий портал до правок» — і я вже бачу: сюди можна падати, тут усе ціле. Без підпису коміт — як фото без дати: потім гадаєш.

2. Відвести гілку й зафіксувати роботу

— Далі за моделлю — окрема гілка під задачу. Не ліземо в main — відводимо гілку:

$ git checkout -b fix-reward
Перемкнуто на нову гілку 'fix-reward'

— «Перемкнуто на нову гілку fix-reward», — читає Олег уголос. — Прапорець -b означає: створи й одразу перейди. Тепер я стою на новій гілці, main — осторонь. Смикну status — перевірю:

$ git status
На гілці fix-reward
Нічого комітити, робоче дерево чисте

— Бачиш: на гілці fix-reward, чисто. Отут і працюєш. Поназмінював, спробував — і, коли все влаштовує, фіксуєш новою точкою. Ті самі два рухи, add і commit:

$ git add -A
$ git commit -m "fix: нарахування в reward-flow"
[fix-reward e4f5g6h] fix: нарахування в reward-flow
 1 file changed, 3 insertions(+), 1 deletion(-)

3. Подивитися, що змінювалося, і відкотити, якщо криво

— Перш ніж щось приймати, дивимося, що змінилося. Команда diff:

$ git diff
  reward-flow.js
+   const reward = base * multiplier;
-   const reward = base;

— Зелене — що додав, червоне — що прибрав, — тицяє Олег. — Перш ніж фіксувати, очима пройшовся: те, що ти хотів, справді змінилося?

— А якщо накоїв зайвого? — уже розуміє Тьома.

— Тоді — відкат. Повернення гілки до останньої збереженої точки. Ось команда, але з нею обережніше: вона із зубами:

$ git reset --hard HEAD
HEAD тепер на a1b2c3d робочий портал до правок

reset --hard зносить усе, що накоїв після точки, і повертає файли такими, як були, — Олег робить серйозне обличчя. — HEAD — це «остання зафіксована точка, на якій я зараз стою». Відкотило — і наче відрізало. Потужна штука, тому запамʼятай: --hard не питає, зносить мовчки. Двічі подумай, перш ніж натискати.

— А хочеш глянути всі свої точки разом — ось:

$ git log --oneline
e4f5g6h fix: нарахування в reward-flow
a1b2c3d робочий портал до правок

log — це стрічка твоїх комітів, найсвіжіші зверху. Уся історія проєкту — як на долоні: ось сюди можу повернутися, і ось сюди. Памʼятаєш, ти десять папок финал очима перебрав? Оце воно, тільки чесно й в один рядок.

Тьома списав півблокнота. init, status, add, commit, checkout -b, diff, reset --hard, logвісім команд, і ще кілька прапорців у кожної: -A, -m, -b, --hard, --oneline. Голова вже гуде.

— Дядьку Олеже, а це все… напамʼять треба? — обережно питає він.

— Нас так учили — напамʼять, — Олег знизує плечима, забирає кухоль. — Пальці самі мають памʼятати. Я ці команди двадцять років із голови набираю. Ну а ти вже як знаєш — молодь, у вас там свої фокуси. Моя справа — показати, як воно влаштовано насправді. — І, задоволений, іде до себе.

Тьома дивиться на списаний блокнот, і захват «тепер я вмію працювати з Git» швидко змінюється тугою. Вісім команд. Прапорці. Він уже плутає й половину: -A — це де, --hard — це що зносить… Із цим тужливим блокнотом він і повертається до чату з Льохою.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ