fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Как изучить Git простыми словами

Как изучить Git простыми словами

Руководство по защите своего рабочего места в качестве специалиста по анализу данных

За последние годы я работал со многими специалистами по анализу данных. Одна общая черта, которую я обнаружил среди них, – отсутствие навыков разработки программного обеспечения. Простая, но важная практика в разработке программного обеспечения – контроль версий, который в отрасли известен как Git, хотя существуют и другие технологии. Я обнаружил, что многим data scientist’ам не очень удобно работать с Git’ом, в основном из-за того, что они не понимают, зачем, где и как они должны его использовать. В этой статье я описал технологию Git простыми словами и предоставил вам сценарии, в которых вы должны ее использовать. Я также описал наиболее важные функции, необходимые для ежедневной разработки: (а) сохранение изменений, (б) проверка кодовой базы, (в) отмена изменений и (г) переписывание истории. Надеюсь, это поможет вам лучше освоиться с этой удивительной технологией.

Во время собеседования на должность data science вас могут не спросить, например, “Как эффективно использовать Git?”. Однако вы должны знать, как работать с Git с самого первого дня.

На собеседовании по науке о данных вас могут не спросить, например, “Как эффективно использовать Git?” . Однако вы должны знать, как работать с Git’ом с самого первого дня. Вы произведете плохое первое впечатление на своего руководителя, если вам будет неудобно работать с Git’ом; особенно с более продвинутыми операциями Git’а, такими как Rebase. Продвинутые операции Git могут создать проблемы, снижающие скорость разработки, если вы не будете использовать их правильно.

Когда я провожу собеседования с специалистами по анализу данных, я всегда оцениваю их навыки разработки программного обеспечения. Многие интервьюеры не проводят такой оценки, но это не значит, что они не ожидают от вас знания Git. Не зная технологии Git, вы в итоге получите крайне неэффективное сотрудничество с коллегами, которое может поставить под угрозу вашу должность. Поэтому будьте к этому готовы.

– Что такое Git?

Git – это широко распространенное программное обеспечение для отслеживания изменений в кодовой базе (оно же – контроль версий), используемое для координации разработки внутри команды. При версионном контроле основная цель – синхронизировать вашу локальную кодовую базу с удаленной кодовой базой, вытягивая все последние изменения, сделанные другими разработчиками, и выталкивая все последние изменения, сделанные вами. Удаленная кодовая база – это основная кодовая база, в которую разработчики должны постоянно заглядывать, чтобы узнать о последних изменениях.

Git – это технология, которая позволяет синхронизировать все кодовые базы с удаленной кодовой базой, в то время как все они часто изменяются. Git позволяет сохранять и извлекать снимки каждого этапа разработки, называемые также “состоянием”. У нас есть много примеров технологии управления состоянием в индустрии программного обеспечения, таких как Docker (платформа как сервис) или Terraform (инфраструктура как сервис). Git – это широко распространенная технология управления состоянием для изменений кода.

Git позволяет сохранять и извлекать снимки каждого этапа разработки, также называемые “состоянием”. У нас есть много примеров технологий управления состоянием в индустрии программного обеспечения, таких как Docker или Terraform. Git является общепризнанной технологией управления состоянием для изменения кода.

– Как использовать Git?

Сохранение изменений

Обычный кошмар в разработке – потерять изменения кода, над которыми вы работали в течение дня, по какой-либо причине. Git дает вам возможность сохранять изменения как в локальной базе кода, так и в удаленном репозитории. Вы можете использовать команду commit для сохранения изменений в локальной базе кода и команду push для сохранения изменений в удаленной базе кода. Если вы хотите временно сохранить последние изменения, вы можете использовать команду stash. Обычно вы используете команду stash, когда хотите, например, переключиться между двумя ветками без фиксации.

Инспектирование кодовой базы

Время от времени вам нужно осматривать кодовую базу, чтобы получить больше информации о состоянии изменений в ней. Я описал выше, что Git – это технология управления состоянием, поэтому вы должны иметь возможность отслеживать состояние кодовой базы в любое время. Вы можете использовать команду status для отображения и отслеживания состояния кодовой базы. Вы также можете использовать команду log для отображения зафиксированных снимков. Команда log позволяет просматривать историю проекта и искать конкретные изменения.

Отмена изменений

По разным причинам вам может понадобиться отменить некоторые зафиксированные изменения. Для отмены изменений можно использовать команду reset. Эта команда имеет два основных типа: жесткий и мягкий. При передаче аргумента soft все ваши изменения останутся в кодовой базе, но все соответствующие коммиты будут удалены. Когда передается жесткий аргумент, состояние кодовой базы полностью сбрасывается на точное состояние или снимок кодовой базы, на который вы указали. Каждый снимок кодовой базы регистрируется с уникальным идентификатором коммита. Позвольте мне поделиться двумя сценариями, когда вам нужно использовать сброс с мягким и жестким аргументом.

  • Сценарий 1 (когда вам нужно использовать reset –soft) – Вы работаете в компании, которая имеет строгие правила в отношении парадигмы разработки. Вы работаете над веткой для разработки функции A. В то же время вы начинаете разрабатывать функцию B. Вы забыли создать новую ветку и зафиксировали изменения кода, связанные с функцией B, в той же ветке, что и функция A! После нескольких фиксаций вы заметили это и решили очистить свою ветвь. Вы должны отменить свои изменения.
  • Сценарий 2 (когда нужно использовать reset –hard) – Вы работаете с операциями Git и вдруг совершаете ошибку. Все ваши последние изменения были удалены, и вы очень расстроились. Вы хотите вернуть кодовую базу на снимок, где вы уверены в ее качестве. В это время вам нужно вернуться к снимку кодовой базы, который является чистым.

Обратите внимание, что жесткий аргумент нужно использовать с осторожностью, так как он удаляет все.

Переписывание истории

Группа разработчиков может быть против переписывания истории; однако многие другие используют эту мощную функцию для более быстрой разработки с меньшим количеством конфликтов. Вы можете использовать эту функцию для создания чистой истории в системе управления состоянием и быстрого разрешения конфликтов, если вы используете ее правильно. Основной оператор, который вы должны использовать для перезаписи истории, – это rebase . Вы можете использовать rebase для слияния нескольких коммитов в один коммит.

В двух основных сценариях вам нужно использовать rebase .

  • Сценарий 1 – Несколько дней назад вы взяли ответвление от основной (она же мастер) ветви. Вы выполнили ряд разработок, но ваша работа еще не закончена. В это время ваши коллеги завершают свои задачи и сливают свои изменения в основную ветку. Теперь ваша ветка рассинхронизирована с последними изменениями в основной ветке. Вы должны заново создать свою ветку, взятую из более старого снимка основной ветки, поверх последних изменений в основной ветке. Вы можете спросить, почему? Потому что иначе вы не сможете объединить свои изменения с основной веткой, поскольку ваша ветка устарела (т.е. может иметь некоторые расхождения с основной веткой).
  • Сценарий 2 – Вы работали в ветке некоторое время. Вы зафиксировали свои последние изменения в большом количестве коммитов. Вы решили сжать свои коммиты в один коммит (т.е. переписать историю) по двум причинам. Во-первых, вы хотите иметь четкий путь развития (также называемый чистой историей), чтобы убедиться, что плохие привычки развития не будут перенесены в удаленную кодовую базу. Во-вторых, вы хотите делать ребазинг поверх последних изменений в основной ветке. Если в вашей ветке много коммитов, разрешение конфликтов (т.е. расхождение между вашей веткой и новой основной веткой) становится намного сложнее, поскольку вам приходится разрешать конфликты в каждом коммите.

Обратите внимание, что если вы не являетесь экспертом в Git, никогда не пытайтесь переписать историю самостоятельно или на критически важной кодовой базе. Я настоятельно рекомендую использовать экспериментальную кодовую базу для освоения Git’а, прежде чем применять любую из этих команд, особенно сложные, на критическом проекте. Подробнее вы можете прочитать в статье ниже.

– Последние слова

Если вы хотите узнать больше, вам стоит познакомиться с git-flows. Что же такое git-flow? Рабочий процесс разработки на основе git, также известный как git-flow, – это последовательность шагов разработки для создания и выпуска программного обеспечения. Чтобы обеспечить эффективное сотрудничество, вы также должны знать нюансы наиболее важных git-потоков. О двух самых важных git-потоках вы можете прочитать в этой статье: Git-Flow – источник продуктивности, а не путаницы.

Я настоятельно рекомендую вам прочитать потрясающий учебник, созданный Atlassian. Кроме того, если вам неудобно работать с Git CLI, вы можете использовать замечательный клиент Git от Atlassian под названием Sourcetree. Хотя он не избавляет вас от необходимости использовать Git CLI, он предоставляет вам удобную среду для использования Git для многих общих нужд.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *