Git: Зачем мне это нужно, если я инженер-электрик?
Опубликовано · 10 мин чтения
На этой странице
Перевод выполнен с помощью машинного перевода. Технические формулировки можно сверить с оригиналом. Также на
Я инженер-электрик. Сначала мне было непонятно, зачем мне нужен инструмент, о котором все время говорят программисты. Я писал в Word, сохранял файлы и использовал OneDrive. Обычное решение сохранить старую копию — скопировать файл и добавить к его имени сегодняшнюю дату или слово «старый», «новый» или «последний» в третий раз.
Так в чем проблема? Почему я должен добавлять в свою работу инструмент, изучение которого требует времени?
В период с 2016 по 2019 год я больше склонялся к программному обеспечению с открытым исходным кодом. Было что-то в стремлении к свободе и что-то еще, не менее важное: мне нравилось делать инструменты, которые мне потом помогут. Я не хотел, чтобы каждый проект заканчивался исследовательской работой, а следующий начинался с нуля. Я хотел, чтобы в нем осталось что-то, на чем я мог бы основываться: понятный код, метод расчета или набор результатов, к которым я знал, как пришел.
Именно здесь я начал понимать, зачем мне может понадобиться Git.
Проблема не в том, что стоит старая версия
Иметь старую версию полезно, но есть вопросы, на которые одно только имя файла не дает ответа.
Какая версия имитационной модели создала эту кривую? Какое значение вы изменили, прежде чем результат улучшился? Вы действительно изменили метод расчета или исправили ошибку при чтении данных? А что я отправил своему коллеге на прошлой неделе?
Представьте себе простой проект с программой расчета, файлом транзакций, результатами и черновиком статьи. Вы можете изменить параметры и код в один и тот же день, а затем забыть обновить таблицу в статье. Каждый файл существует, но связь между файлами потеряна.
Вот в чем для меня важна разница: я хочу сохранить состояние проекта и смысл изменения, а не набор копий, которые трудно различить.
Система контроля версий записывает изменения файлов с течением времени и позволяет сравнивать состояние и возвращаться к предыдущей версии. Git — одна из таких систем; Его можно использовать в индивидуальном проекте или в групповой работе. 1
Откуда взялся Git?
Git начался в 2005 году в контексте разработки ядра Linux, после прекращения действия соглашения, которое позволяло разработчикам использовать BitKeeper бесплатно. Линус Торвальдс был одной из ключевых фигур в разработке этого варианта, и требования были практичными: скорость, распределенная работа и работа с большим проектом, развитие которого могло разветвляться во многих направлениях. 2
Мне нравится знать это начало, потому что оно объясняет, как выглядит инструмент. Git предназначен для обработки большого количества изменений, внесенных разными людьми, которые затем необходимо понять, объединить и просмотреть. Ваш проект не обязательно должен быть размером с Linux, чтобы воспользоваться той же идеей.
Git и GitHub: я использую два имени, но у каждого есть функция
Git — это система управления версиями, работающая на вашем компьютере. Вы можете записывать изменения, просматривать историю, создавать ветки и сравнивать файлы, не загружая проект в какое-либо место.
GitHub — это сервис, который может размещать репозиторий Git и добавлять инструменты для просмотра, совместной работы и автоматизации. Вы можете использовать Git без GitHub и разместить свой репозиторий на другом сервисе или на собственном сервере. 12, 6
Репозиторий или репозиторий — это проект с его записью. В типичном локальном репозитории есть скрытая папка с именем .git, содержащая данные, необходимые Git для управления этой историей. Поэтому я не рассматриваю ее как временную папку, которую можно удалить, чтобы очистить проект. 4Визуально я мог бы представить историю как вертикальную шкалу времени: состояние, затем модификация, затем новое состояние. Но Git также позволяет этой строке разветвляться; Я опробую идею в отдельной ветке, затем просматриваю ее и решаю, включать ли в основной бизнес. 7
Что я сохраняю при фиксации?
фиксация Запись состояния выбранных отслеживаемых файлов вместе с сообщением, объясняющим изменение и такие данные, как автор и дата. Он имеет идентификатор на основе хеша, который мы обычно видим как строку букв и цифр.
Git рассматривает историю проекта как снимки его состояния. Если файл не изменился, он может вернуться к ранее сохраненному содержимому вместо того, чтобы каждый раз создавать его отдельную копию. Основные процессы, включая регистрацию этих случаев, осуществляются на местах. 3
Но Git не знает автоматически, что эта модификация «исправила уравнение» или что она «изменила гипотезу исследования». Я тот, кто пишет этот смысл.
Существует большая разница между сообщениями типа:
update
И сообщение типа:
Correct the line-to-line voltage conversion in the current calculation
В обоих случаях имеется сохраненная копия. Во втором тоже есть предложение, которое помогает мне спустя несколько месяцев понять, что произошло.
Чем меньше и взаимосвязаны изменения, тем лучше история может мне помочь. Изменение метода расчета, переименование десятков файлов и исправление формата таблиц в одной записи усложняют просмотр, даже если все сохраняется.
Как это входит в работу инженера-электрика?
Предположим, я сравниваю реакцию двух контроллеров в моделировании. Следующий пример иллюстрирует эту идею, но не описывает конкретный опыт:
| Фаза действия Что мне записать? | Почему мне это пригодится в дальнейшем? | |
|---|---|---|
| Установить эталонный корпус | Код, параметры модели и как с ней работать. Я знаю отправную точку, с которой сравнивал | |
| Изменить контроллер | Конкретная модификация и ее причина | Я отличаю эффект контроллера от остальных изменений |
| Исправление арифметической ошибки. Отладка отделена от разработки идеи. Знать, какие результаты необходимо пересчитать. | ||
| Готовлю статью | Источник таблиц, рисунков и текста | Я могу связать речь с версией, которая дала результаты |
Это не значит, что я помещаю каждый большой файл в Git. Некоторые файлы моделирования и двоичные данные не дают понятного текстового сравнения, и для них может потребоваться отдельное хранилище или такие инструменты, как Git LFS. Важно то, что существует четкая организация, связывающая данные с кодом и настройками, необходимыми для их использования. 8
Это не означает, что сама по себе история делает исследования воспроизводимыми. Если я сохраню программу и не запишу зависимости, случайное начальное значение, когда оно эффективно, или необходимые данные, я могу сохранить копию и не смогу воспроизвести ее. Это ответственность проектной организации; Git помогает мне сохранить и просмотреть эту организацию.
Хорошо, что я делаю каждый день?
Я резюмирую эту идею в уме: я меняю, затем записываю, затем загружаю. Но между изменением и записью есть шаг, о котором я хочу сказать четко: Я просматриваю то, что сохраняю.
На существующем складе простой рабочий цикл может быть таким:
git status
git diff
git add simulation.py notes.md
git diff --staged
git commit -m "Document the assumptions used in the reference case"
git push
status Отображает состояние файлов. diff помогает мне просматривать текстовые изменения. add определяет, что будет идти в следующую запись, а commit затем сохраняет это состояние локально. Наконец, push отправляет записи в удаленный репозиторий, настроенный для этого проекта. Commit не загружает работу сам по себе, а push не записывает автоматически все изменения, которые я не сохранил в коммите. 5, 6
Мне не нужно постоянно вводить эти команды вручную. Я мог бы реализовать ту же идею из интерфейса редактора. Важно то, что я понимаю, что происходит, чтобы не нажимать кнопки, разницу между которыми я не знаю.
Когда я вернусь в проект после перерыва, могу начать с краткой истории:
git log --oneline -8
Восемь хороших писем могут оказаться полезнее, чем открытие восьми папок с одинаковыми названиями. 9
Легко ли мне было учиться?
Нет. Поначалу это было трудно, и отчасти трудность заключалась в том, что я не был до конца уверен, что мне это нужно.
Я все еще использовал Word, и разница между двумя файлами .docx была для меня не так очевидна, как разница между двумя текстовыми файлами. Git сохраняет файлы Word, но они обычно не предоставляют динамические текстовые развороты, такие как Markdown или LaTeX. Для сравнения имеются конверсионные фильтры, которые требуют дополнительной настройки. Это сделало полезность Git менее очевидной в части моей работы в то время. 13
Потом я перешёл поближе к Markdown и LaTeX, и код, заметки и статья теперь живут там же, и я открываю их из того же редактора. Я не могу точно сказать, какой из этих инструментов первым привел меня к другому, но их сочетание изменило впечатление.
В конце концов, Git больше не является административной задачей. Это стало частью моей работы.
Это именно то, что я ищу в инструментах: приступить к работе, когда они мне помогают, а не прекращать работать все вместе, чтобы доказать, что я ими овладел.
Что изменил искусственный интеллект?
С помощью инструментов генерации кода легко внести большие изменения за короткое время. Вы можете запросить небольшое изменение только для того, чтобы обнаружить новые файлы и модификации там, где вы не ожидали.
На мой взгляд, это увеличивает потребность в записи, которую можно просмотреть. До модификации есть ситуация, которую я знаю, а после нее есть различия, которые я могу прочитать и протестировать. Скорость написания кода не освобождает меня от понимания его влияния.
На GitHub наблюдается явный рост активности, но мы должны определить, что мы измеряем. В отчете за октябрь 2025 года указано всего 630 миллионов репозиториев. На следующем рисунке показан еще один показатель: количество push-операций согласно цифрам, пересчитанным в отчете за 2026 год. 10, 11
В повседневной работе для меня важно нечто большее, чем эти цифры: если изменения происходят быстрее, полезно иметь возможность их отслеживать и просматривать.
Чего я не прошу у Git?
Я не прошу его запоминать то, что я не записал. Изменения в рабочих файлах не становятся частью истории только потому, что репозиторий существует.
Не путайте историю с резервной копией. Репозиторий, существующий только на одном диске, уязвим для потери этого диска, и при загрузке записей не загружаются исключенные файлы или данные, которые я храню за его пределами. 3, 6
Кроме того, Git не помогает мне организовать работу после его установки. Я могу положить в него большой беспорядок и хранить его очень бережно. Организация зависит от того, как я разделяю работу, от ясности названий файлов, сообщений об изменениях и от того, что я решаю записывать.
Но наличие инструмента делает эту организацию жизнеспособной.
Почему мне сейчас так трудно отпустить его?
Потому что я начал смотреть на папку проекта как на рабочую единицу с памятью. Он содержит идею, код, примечания и то, что меняется от одной попытки к другой.
Проделанная мной работа не гарантирует, что следующая идея будет хорошей, но мне не обязательно тратить ее впустую, чтобы начать ее. Я могу вернуться к старому расчету, взять часть проекта или понять, почему я ушел с определенного пути.
Сначала я спрашивал: нужен ли мне вообще Git? Теперь вопрос, который я задаю перед важным изменением: зарегистрировал ли я состояние, в которое хочу иметь возможность вернуться?
Обычно это небольшое изменение, но это большая разница в моем отношении к тому, над чем я работаю.
Источники и дополнительная литература
- Pro Git — О контроле версий. Определение контроля версий.
- Pro Git — Краткая история Git. Происхождение Git и контекст его развития.
- Pro Git — что такое Git? Снимки, идентификаторы контента и локальная работа.
- Pro Git — Получение репозитория Git. Репозиторий и папка .git.
- Pro Git — запись изменений в репозиторий. Состояние файла, область подготовки и фиксация .
- Pro Git — Работа с удаленными устройствами. Удаленные репозитории, отправка и получение .
- Pro Git — Коротко о ветках. Ветки idea.
- Документация GitHub — о хранилище больших файлов Git. Хранение больших файлов с помощью Git LFS.
- Git — git-log. Просмотреть журнал изменений и параметры.
- GitHub, октябрь 2025 г. Количество репозиториев и рост платформы.
- GitHub, октябрь 2026 г. Цифры активности и методология сравнения.
- Документация GitHub — О Git. Разница между Git и GitHub и их роль в сотрудничестве.
- Pro Git — атрибуты Git. Сравните с помощью фильтров преобразования, включая файлы примеров Word.
Последняя редакция источников: 3 ноября 2026 г.