JavaRush /Курсы /Claude Code SELF /Как это делается руками: команды git

Как это делается руками: команды git

Claude Code SELF
13 уровень , 2 лекция
Открыта

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

Олег отодвигает Тёмин ноутбук к себе, открывает терминал в папке портала. Пальцы у него по клавишам бегают уверенно — сразу видно, что делал это тысячу раз.

— Значит так. Модель ты понял: main, ветка, коммит, откат. Теперь — каждое слово имеет свою команду. Смотри и записывай, я по одному разу показываю.

— Первое. Завести git в проекте. Один раз на проект, в самом начале.

$ git init
Initialized empty Git repository in /portal/.git/

— Всё, — говорит Олег. — Появилась скрытая папка .git, в ней git и хранит всю историю. Теперь он следит за проектом. Дальше — прежде чем что-то менять, надо осмотреться. Команда, которую я жму сто раз на дню:

$ git status
On branch main
No commits yet
Untracked files:
  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
Switched to a new branch 'fix-reward'

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

$ git status
On branch fix-reward
nothing to commit, working tree clean

— Видишь — «на ветке 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 is now at 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 это что сносит… С этим тоскливым блокнотом он и разворачивается к чату с Лёхой.

1
Задача
Claude code, 13 уровень, 2 лекция
Недоступна
Capability matrix в Claude CLI
Capability matrix в Claude CLI
1
Задача
Claude code, 13 уровень, 2 лекция
Недоступна
Каталогизация MCP-серверов по категориям
Каталогизация MCP-серверов по категориям
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ