Инструмент, без которого "программист" на практике неполон — и, что приятно, целиком работающий из терминала, снова возвращая практику блока 2 в дело.
Знакомая многим ситуация без системы контроля версий: script.py,
script_v2.py, script_final.py, script_final_ДЕЙСТВИТЕЛЬНО_финал.py
— попытка вручную сохранять историю изменений копированием файлов быстро превращается в
хаос без понятной хронологии, кто что менял и почему. Git решает это системно: хранит всю
историю изменений одного файла (или целого проекта) в структурированном виде, позволяя в
любой момент вернуться к любой прошлой версии, посмотреть, что именно изменилось между
двумя моментами времени, и безопасно экспериментировать, не рискуя потерять рабочую версию.
Репозиторий — папка проекта, за изменениями в которой следит Git. Коммит (commit) — зафиксированный "снимок" состояния файлов проекта на определённый момент, с обязательным сопроводительным сообщением, объясняющим, что было изменено и зачем.
Все эти команды — обычные команды терминала (главы 09–12), Git не требует отдельного графического приложения, хотя такие тоже существуют как удобная надстройка поверх тех же самых команд.
Не всё в папке проекта стоит включать в историю версий. Файл .gitignore
перечисляет то, что Git должен игнорировать:
Хранить в истории версий имеет смысл только то, что нельзя автоматически пересоздать — сам исходный код, а не производные от него временные или сгенерированные файлы.
Ветка — параллельная линия истории, позволяющая экспериментировать с изменениями, не
затрагивая основную (обычно называемую main) версию проекта, пока
эксперимент не окажется удачным и не будет осознанно "влит" обратно.
GitHub, GitLab и подобные сервисы хранят копию репозитория на сервере — не только для коллективной работы нескольких людей над одним проектом, но и как надёжную резервную копию, не зависящую от состояния локального компьютера.
В главах 09 и 10 честно говорилось: команды rm и del
удаляют файл безвозвратно, без корзины. Для кода под управлением Git ситуация другая —
случайно удалённая или испорченная строка кода, если она была ранее закоммичена,
восстановима из истории коммитов даже после серьёзных правок или удаления файла целиком.
Это не оправдание неосторожности с настоящими файлами данных вне репозитория, но веский
практический довод коммитить рабочий код чаще, а не только в конце дня "на всякий случай".
Практически ни один реальный профессиональный проект (и подавляющее большинство открытых проектов, доступных для изучения и переиспользования) не существует без Git — это отраслевой стандарт, а не просто одна из многих альтернатив. Освоение основ Git на этом этапе — не факультативное дополнение, а завершение того, что делает написанный в блоках 3–4 код готовым к реальной, а не только учебной практике.
Следующая глава возвращает книгу к тому, с чего, возможно, начинался твой интерес к электронике вообще — но уже не с паяльником, а с Python, управляющим Arduino напрямую.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.