JavaRush /Курсы /Claude Code SELF /Как хранят историю профи

Как хранят историю профи

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

1. Как профессионалы хранят историю: знакомься, git

— Слушай, а раз уж я теперь почти в деле, — Тёма сам выходит на следующий вопрос, и в голосе уже та небрежность, будто он спрашивает не про себя, а так, из любопытства, — как тогда настоящие разработчики живут? У них же в проектах тысячи файлов, и народу куча, все правят одно и то же. Если бы они плодили папки, как… ну, как некоторые, — они бы друг друга поубивали за день.

— Поубивали бы, — соглашается Лёха. — Поэтому они так и не делают. У них есть нормальная штука. И у неё есть имя — git.

Лёха не торопится с деталями, а сначала дает общую картину:

— Профи не держат склад копий. Они держат одну ленту истории, в которой все состояния проекта записаны по очереди, аккуратно, друг за другом. Не куча папок в углу, а упорядоченная история. Это и есть git.

— Подожди, — Тёма пытается уложить. — «Одна лента» — это как? У меня вот десять папок было. А у них что, одна папка, но внутри неё как-то спрятаны все версии?

— Почти. Только не «спрятаны как-то», а аккуратно записаны, с порядком и подписями: вот это состояние было таким-то, потом таким-то. Сейчас покажу на штуке, которую ты сто раз видел.

2. История версий в Google Docs: три способности git

— А как это вообще выглядит? — Тёма недоверчив. — Лента — это что, тоже папки, только в ряд?

— Не папки. Самый понятный образ — история изменений в Google Docs, — Лёха цепляется за то, что Тёма точно видел. — Ты же работал в гугл-доке? Документ один. Ты его правишь. Но в любой момент открываешь «историю изменений» и видишь: вот таким он был утром, вот таким — час назад, вот что и кто поменял между этими точками. И можешь откатиться к любому прошлому состоянию. Заметь — документ при этом не раздваивается на договор_финал2. Он один. А вся история аккуратно лежит рядом с ним.

Тёма прокручивает в голове — и правда, он же так делал. Писал когда-то общий документ, кто-то всё поудалял, а он зашёл в историю, нашёл нужную точку и вернул как было. Никаких копий документ_2, документ_нормодин файл, и вся его жизнь записана сбоку.

— А, так я этим уже пользовался, только в доках, — говорит он. — И ни разу не подумал, что код можно так же.

— Ага, оно самое. Штука та же, просто для кода у неё своё имя. git делает ровно то же для кода, — продолжает Лёха, и проговаривает три вещи. — Первое: хранит ленту состояний проекта — не кучу копий, а упорядоченную историю. Второе: позволяет вернуться к любому сохранённому состоянию. Третье: показывает, что именно менялось между состояниями — то самое, чего твои папки тебе никогда не показывали.

Тёма ловит мысль на лету и расплывается:

— О, так это же мои final2, только причёсанные. Выходит, я сам додумался до того, до чего серьёзные дядьки шли годами, — просто я свою версию руками лепил, а у них она с именем и в галстуке. Суть-то одна — не потерять удачное. Способ только в сто раз чище: одна история вместо склада копий.

— Ровно так, — кивает Лёха. — git — это и есть профессиональная система хранения версий. Одна история, и всегда можно отмотать назад, видя, что менялось.

И добивает третьим пунктом, тем, что Тёму особенно цепляет:

— И вот это «видно, что менялось» — оно тебе сегодня прям в больное место. Помнишь, ты не мог понять, чем final отличается от final2? Сидел, гадал? В git ты бы открыл историю и увидел разницу строчка в строчку: вот тут добавили растения, вот тут поправили счёт. Папки тебе этого не показывали никогда — они немые, просто лежат. А история — говорящая.

— Более того. Git настолько удобная штука, что буквально миллионы разработчиков ее используют для совместной работы над публичными проектами, — добавляет Лёха. — Место, куда эти проекты выкладывают, чтоб работать вместе, целой командой, зовётся GitHub. Тоже пока просто слово в копилку — но теперь ты его будешь замечать повсюду, пусть лежит в голове рядом с git.

3. Что использовать вместо git сейчас

Лёха, продолжает, сев на любимую лошадку:

— А внутри git есть такая штука — ветки, это когда основная линия, на которой живёт рабочая игра, так и зовётся — прод. Это версия, которая работает, и её не ломают.

— А теперь представь: хочешь собрать вторую версию Тетриса, космическую, а рабочую трогать страшно. Ты создаёшь ветку — отдельную линию рядом с прод. Дальше все эксперименты идут в ней: прод стоит целый, а ты в своей ветке хоть всё переверни. Зашло — вливаешь обратно, не зашло — выбрасываешь ветку целиком, и…

— Стоп-стоп, погоди, — Тёма выставляет ладонь, как гаишник. — Ветки, коммиты — это вот пускай зануды с механическими клавиатурами по вечерам полируют, у меня от одних слов зубы сводит. Сама идея — история, точки возврата — это прям моё, тут вопросов нет. Но сейчас запахло «настоящей инженерной дисциплиной», я носом чую: сейчас будут полчаса учить раскладывать носки по цвету. Не моё. Мне бы просто хорошую замену моим final2 — кнопку, ткнул и вернулся в прежнее состояние. А весь этот серьёзный инструмент — давай не сегодня. И вообще не при мне.

Лёха смеётся и сразу сдаёт назад:

— Принято. И знаешь, ты даже прав, что тормозишь. git — мощный, но у него свои понятия: ветки, коммиты, целый набор команд. Вывалить это всё на тебя прямо сейчас — самый верный способ всё запутать и отбить охоту. Поэтому сегодня твоя задача простая: запомнить, что есть такая профессиональная система хранения истории, и зовут её git. Имя в голове — этого пока хватит.

— А когда по-настоящему? — аккуратно интересуется Тёма.

— Когда у тебя появится проект, который реально страшно потерять. Сейчас-то ты Тетрисом балуешься — ну сломал, ну собрал заново, не трагедия. А вот когда будет вещь, за которую душа болит, — тогда git и раскроется как серьёзная страховочная сетка. И поверь, ты сам к нему придёшь, без меня: однажды упрёшься в ситуацию, где лёгких инструментов не хватит, и вспомнишь — а, было же то самое профи решение. Вот тогда и сядешь разбираться, уже с понятным «зачем».

— Вот это по-нашему, — Тёма ухмыляется и хлопает по столу. — А то я уж приготовился, что меня сейчас, как первоклашку, посадят зубрить этот ваш git, строчка за строчкой. А оказывается, имя записал, кивнул умно — и свободен. Люблю, когда умные люди сами разрешают не учить лишнего.

— Можно. И это нормально, даже правильно. Имя записал, идею понял — на сегодня хватит.

— И кстати, чтоб ты не пугался заранее, — добавляет Лёха. — Когда день придёт, ставить его руками тебе не придётся. Скажешь агенту «поставь git» — он и поставит, и версию покажет. Как любой другой инструмент.

— В смысле просто словами? — Тёма даже отрывается от экрана.

— А ты уже забыл, с чего мы начинали? Ты ему в первый же день так полверстака и собрал. Инструменты ставит агент, твоё дело — сказать какой. Так что вся страшная профи-система для тебя однажды сведётся к одной строчке в чате.

— А пока для твоих экспериментов хватит инструмента попроще, — добавляет Лёха. — Кнопки отмены прямо внутри ИИ-агента. Лёгкой, быстрой, без всяких веток и коммитов. Вот её сейчас и покажу — и это уже не туманное «потом», это прямо сейчас, сегодня.

1
Задача
Claude code, 3 уровень, 2 лекция
Недоступна
Facts-first анализ в plan mode
Facts-first анализ в plan mode
1
Задача
Claude code, 3 уровень, 2 лекция
Недоступна
Разделение mixed bug report внутри Claude CLI
Разделение mixed bug report внутри Claude CLI
Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #6521446 Уровень 3
2 сентября 2026
если все уже установлено а проверка не проходит - как писал человек ниже просто сделайте вот это: "попросил агента дописать в логи установку данных программ сохраняя синтаксис логов." "попросил агента дописать в логи проверку версии данных программ сохраняя синтаксис логов."
Lagarto Уровень 3
2 сентября 2026
ничего не помогло, уважаемы разработчики включите в задачу вариант что на компе уже стоят эти программы и при выводе версии задача считается пройденной.
Вячеслав «X-Pas» Уровень 4
2 сентября 2026
А если запросить установить, если не установлено , ПО идее агент проверит и выдаст версию так и запрос есть и версия есть
Lagarto Уровень 3
2 сентября 2026
по идее-логично, по факту-выдает ошибку по поводу запроса на установку
Anonymous #864479 Уровень 7
1 сентября 2026
Как я решил последнюю задачу. Ранее нам выдали установщик, который все поставил. Т.е. все нужные программы уже установлены. Я не стал ничего ломать и переустанавливать. Я попросил агента установить программы, и если они установлены, то ничего не делать и не ломать. Потом попросил вывести версии, как в задании. Включил проверку, и все тоже самое, в журнале нет установки..... Пробовал по-разному, и всегда одно и тоже. В итоге: я попросил агента дописать в логи установку данных программ сохраняя синтаксис логов. После этого проверка прошла. ))
Maria Уровень 4
1 сентября 2026
Вот так срабатывет, если установлено

Саня, проверь установлен ли у меня гит и установи если не установлен 
Bender Уровень 3
1 сентября 2026
мнда.... Задача: Дай агенту команду установить Node.js под твою операционную систему. Дай агенту команду установить Python под твою операционную систему. Дай агенту команду вывести версию каждого из двух инструментов. решение: Установи GIT под мою операционную систему. Если Git установлен то удали его и установи новый сам. Установи Node.js под мою операционную систему. Если установленно то удали старый и установи новый сам. Установи Python под мою операционную систему. Если установленно то удали и установи сам новый. Выведи версию каждого из инструментов. Результат: Все переустановлено, версии выведены в консоль. Проверка: Непройдено! выполнено по текстовой постановке, а не набрано руками. ЧЁ?! Мля!
prorab PRBN Уровень 5
27 августа 2026
такая же история, пришлось просить переустанавливать, жестко нужно просить переустанавливать, если обновлений нет
22 августа 2026
что за ерунда с проверкой последней задачи. если у меня в системе все это есть. нафиг еще раз ставить. тогда скипайте проверку.
Кэрривайт Уровень 1
25 августа 2026
У меня тоже было все установлено, но я попросила Саню установить последнии версии и задача засчиталась