Что такое контроль версий?
Март 2006 года. Два часа ночи. Я — студент-третьекурсник факультета компьютерных наук, и завтра утром мне предстоит презентовать свой первый в жизни фриланс-проект важному клиенту.
Я кодил последние 14 часов без перерыва, поэтому вообще не помню, какие именно изменения всё сломали.
Всё, что я знаю: ещё вчера (или позавчера?) слой данных работал как часы. А теперь вместо котировок акций на экране висит пачка ошибок.
Я пытался откатить изменения, которые привели к этому кошмару, но... на дворе 2006 год, и моя IDE позволяет отменить лишь около 5 минут моего небрежного ночного кодинга.
Рука уже онемела от бесконечных нажатий Ctrl+Z. Если я сейчас случайно нажму не ту клавишу, то не смогу вернуть изменения обратно (redo), и потеряю ещё больше работы.
...разве что мой ПК на Windows 98 внезапно вырубится ещё раньше и испортит все открытые файлы.
Я в отчаянии. Моя единственная надежда — резервная копия, которую я сделал вчера... или на прошлой неделе? Она была на флешке? Или, может, на CD-диске?
Кроме того, в этой копии всё равно нет свежего кода, так что я не смогу выяснить, какие именно изменения вызвали проблему.
О, это же та самая дискета 💾, на которую я записал резервную копию вчера! Просто чудо!
Секунду, сначала нужно распаковать архив с дискеты.
Не получается достать файлы из резервной копии! Неужели магнит внутри колонки повредил дискету?
Похоже, это конец. Я капитально влип.
Сейчас об этом забавно вспоминать, но тогда я был раздавлен. В конце концов я нашёл причину ошибки в коде и всё исправил.
К сожалению, было уже слишком поздно. Я сорвал дедлайн и потерял клиента. Зато усвоил урок на всю жизнь.
(version control system) — это программа, которая сохраняет историю изменений файлов. Можно вернуть старую версию, откатить один файл или весь проект, посмотреть историю и понять, кто и когда внёс ошибку.
Сегодня контроль версий незаметно встроен во многие приложения. Например, при редактировании документа в Google Docs можно посмотреть историю изменений и вернуть документ к более ранней версии. То же самое с файлами в Dropbox и многих других сервисах. В этих приложениях версии сохраняются автоматически, и об этом даже не нужно задумываться.
Но существуют и самостоятельные системы контроля версий, такие как Git, Mercurial или Subversion, которые позволяют точнее управлять версиями.
Такие системы особенно полезны при работе со сложными проектами: программами, сайтами или наборами данных. В большом проекте много частей, которые зависят друг от друга. Часто код работает только с определёнными версиями библиотек или других компонентов, и если обновить одну часть, остальные могут сломаться. Именно здесь системы контроля версий раскрываются во всей красе.
Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.
(требуется войти в аккаунт)