Короткий ответ
Git хранит полную историю изменений файла с автором, временем и построчным diff, позволяет откатиться к любой версии и сравнить изменения, тогда как ручное именование файлов быстро превращается в путаницу и теряет контекст, кто и зачем что менял.
Как это работает подробнее
- Как это работает: Git фиксирует снимки (коммиты) изменений в репозитории; каждый коммит содержит автора, дату, сообщение и ссылку на предыдущее состояние, что образует граф истории.
Пример кода
example.sh
git log --oneline -- report.sql
git diff a1b2c3d..HEAD -- report.sql
git checkout a1b2c3d -- report.sqlЧто использовать на практике
- На практике: аналитик кладёт SQL-запросы, Python-скрипты и даже шаблоны отчётов в репозиторий, пишет понятные commit message («добавил фильтр по региону», а не «fix»), использует
.gitignore, чтобы не коммитить большие выгрузки и пароли к БД. - Пример и проверка. Аналитик сломал рабочий запрос для дневного отчёта. С Git это чинится так: Проверка: после отката report.sql снова даёт прежний результат, что подтверждается сравнением вывода запроса с контрольными цифрами отчёта за предыдущий день.
Подводные камни
- Частые ошибки: хранение десятков файлов вроде
query_final_v3_really_final.sqlвместо одной истории изменений; коммиты без сообщений; работа и правки сразу в проде/общем файле без возможности отката.