Всем привет! Я — практикующий исследователь данных, и на этом канале делюсь тем, что реально работает в IT. Никакой сухой теории, только личный опыт, рабочие инструменты и грабли, на которые я уже наступил за вас. Рад, что вы здесь!
Решил написать отдельный пост на эту тему, чтобы те, кто только начинает или уже работает, но до сих пор боится слова «коммит», могли разобраться, что к чему. Без этих знаний сложно устроиться в компанию, которая серьезно подходит к разработке и анализу. Во всяком случае, в компаниях в которых повелось мне работать, в 70% случаев я работал с git.
Предвижу мысленные вопросы где использует аналитик данных знания git и сразу отвечаю: лично я веду документацию в GitHub по AirFlow и ClickHouse; все даги лежат у меня в GitHub; даже все старые костыльные скрипты на Python и bash на GitHub; ну и конечно все файлы конфигов и бекап pass лежат там же (кстати о конфигах и pass (passwordstore) распишу отдельную статью, по мне так очень даже полезные вещи).
Что такое Git и почему он важен для аналитика
Простыми словами, Git — это система контроля версий. Представьте, что вы работаете над большим отчетом в Excel. Вы сделали какую-то часть, сохранили файл как отчет_v1.xlsx. Потом внесли правки — сохранили как отчет_v2.xlsx. А через неделю поняли, что v1 был лучше. Начинаются поиски, путаница, а если вы работаете в команде, то вообще катастрофа.
Git решает эту проблему. Он не просто сохраняет разные версии, а отслеживает каждое изменение. Это как машина времени для вашего кода и данных. Вы можете вернуться к любой версии проекта, посмотреть, кто и что изменил, и объединить изменения от разных людей.
Git для аналитика — это:
- Безопасность. Вы никогда не потеряете код или важные запросы.
- Порядок. Все изменения хранятся в одном месте, а не разбросаны по папкам с непонятными названиями.
- Работа в команде. Вы можете работать над одним проектом с коллегами, не мешая друг другу.
А вот GitHub — это просто сайт, где хранятся все ваши Git-проекты (репозитории). Это облачное хранилище для кода. GitHub позволяет удобно делиться проектами, создавать команды и обсуждать изменения.
На собеседованиях нередко часть HR-ов спрашивают, умеете ли вы работать с Git. По мне это базовый навык, но конечно он нужен не всем аналитикам, да и его использование зависит от многих факторов устройства вашего IT отдела и вашего личного желания (но от этого зависит и эффективность вашей работы).
Основные понятия Git, которые неплохо было бы знать каждому аналитику данных
Не нужно учить все команды и разбираться в сложных тонкостях. Достаточно знать и понимать пять-шесть основных понятий.
- Репозиторий (repo). Это папка, в которой хранятся все файлы вашего проекта и вся история их изменений.
- Коммит (commit). Это снимок вашего проекта в определенный момент времени. Вы что-то изменили, добавили новые строки кода, и сделали «коммит» — зафиксировали эти изменения. Каждый коммит имеет свой уникальный идентификатор.
- Ветка (branch). Это отдельная версия вашего проекта. Представьте, что вы работаете над новым дашбордом. Чтобы не сломать основной код, вы создаете новую ветку, делаете там все свои изменения, а когда все готово, объединяете ее с основной.
- Клонирование (clone). Это когда вы копируете репозиторий с GitHub на свой компьютер.
- Пуш (push). Вы закончили работать над своим кодом, сделали коммиты и теперь отправляете их на GitHub, чтобы команда могла видеть ваши изменения.
- Пул (pull). И наоборот, когда ваш коллега что-то изменил и «запушил», вы «пулите», чтобы получить его изменения и обновить свою версию проекта.
Git на практике: пошаговая инструкция для аналитика
Я не буду рассказывать про установку Git, это легко найти в интернете. Давайте сразу к делу. Представим, что вы получили задачу: создать новый отчет по продажам.
1. Создаем репозиторий. Заходим на GitHub, нажимаем New repository. Называем его sales_dashboard. Ставим галочку Add a README file. Жмем Create repository. Готово!
2. Клонируем репозиторий на свой компьютер. Заходим в репозиторий, жмем зеленую кнопку <> Code, копируем ссылку. Открываем терминал (командную строку) на своем компьютере и пишем:
git clone https://github.com/your-username/sales_dashboard.git
После этого у вас на компьютере появится папка sales_dashboard. Заходим в нее.
3. Создаем новую ветку. Это очень важный шаг! Никогда не работайте в основной ветке (main или master). Чтобы создать новую ветку и сразу на нее перейти, пишем:
git checkout -b new_sales_report
Команда checkout -b создает новую ветку с именем new_sales_report и сразу переключает вас на нее. Теперь все, что вы будете делать, не затронет основной код.
4. Работаем и фиксируем изменения. Открываем папку sales_dashboard и создаем там свой скрипт, например, sales_report.py. Пишем код, который делает нужные вычисления. Допустим, вы написали первые 100 строк. Чтобы зафиксировать их, делаем два шага:
- Добавляем файл в "зону ожидания":
git add sales_report.py
- Фиксируем изменения с комментарием:
git commit -m "Initial script for sales report"
Комментарии должны быть осмысленными, чтобы потом вы и ваши коллеги понимали, что вы сделали.
5. Отправляем изменения на GitHub. Закончили работу, сделали несколько коммитов. Теперь нужно отправить их в репозиторий на GitHub.
git push origin new_sales_report
origin — это стандартное имя для удаленного репозитория.
6. Создаем Pull Request. После того как вы «запушили» изменения, заходите на GitHub. Там появится уведомление, что в вашей ветке new_sales_report есть новые изменения. Нажимайте Compare & pull request. Это означает, что вы просите объединить вашу ветку с основной. Коллеги посмотрят ваш код, оставят комментарии, и после того как все будет в порядке, они «сольют» (merge) вашу ветку в основную.
Примерно такой механизм/шаги работы в подавляющем большинстве случаев при работе с git.
Незабывайфхаки и выводы
- GUI-клиенты. Если вы совсем не хотите работать с терминалом, попробуйте программы с графическим интерфейсом, например, Sourcetree или GitHub Desktop. Они делают то же самое, но с помощью кнопок. Я будучи помешанным на терминалах, эти варианты никогда не пробовал, но пишут что удобно.
- Gitignore. Не забывайте создавать файл .gitignore в корне проекта. В него нужно добавлять все, что не должно попасть в репозиторий: файлы с паролями, огромные выгрузки данных, временные файлы.
- Изучайте постепенно. Не пытайтесь выучить все команды сразу. Начните с clone, checkout, add, commit, push и pull. Этого будет достаточно для 90% задач.
- Не бойтесь ошибаться. В Git можно откатиться к любой версии. Я сам нередко все путал, но практика решает. Запоминайте команды и их назначение.
Помню, как меня позвали на первый проект в фрилансе, и я почти ничего не знал про Git. Но я честно сказал, что изучал его поверхностно, и готов быстро научиться. За неделю я разобрался с базовыми командами, а через месяц уже делал сложные пулл-реквесты, и даже не больно 👀.
Поэтому, если вы хотите попасть в IT или уже там, но чувствуете, что чего-то (например Git-а) не хватает, начните изучать. Это не только требование рынка, но и отличный инструмент для организации работы. Как говорил один из моих преподавателей в универе "Везет тому, кто везет" ну или "Дорогу осилит идущий", куда и зачем идущий решать вам🙃.
Надеюсь, мой опыт поможет вам не тратить лишнее время на поиски и быстрее разобраться в этом вопросе. Если есть вопросы, пишите.
Я не претендую на истину в последней инстанции, я пишу о своём пути и опыте. Спасибо, что дочитали до конца. Подпишитесь👇👇👇, ставьте лайки 👍🏽👍🏽👍🏽 — впереди много интересных статей про навыки, инструменты, обучение, лайфхаки и пути аналитика.