Руководство для начинающих по Git: все, что вам нужно знать

Опрос профессиональных разработчиков, проведенный Stackoverflow в 2022 году, показал, что 96,65% используют Git для контроля версий.

Но что такое Гит? И что делает его таким популярным среди разработчиков по всему миру?

Короткий ответ: Git — это система контроля версий (VCS), которая упрощает отслеживание и управление изменениями, внесенными в файлы. Хотя он обычно используется для отслеживания версий кода, вы можете использовать Git практически для любого проекта, где вам нужно отслеживать несколько файлов или управлять ими.

Читайте дальше, чтобы узнать все, что вам нужно знать о Git, в том числе о том, как он работает и о его преимуществах.

Git в двух словах

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

Git позволяет:

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

Git называют «распределенной» системой контроля версий, поскольку она предоставляет каждому разработчику выделенную копию всего проекта в его локальной системе. Это означает, что каждый член команды имеет представление о ходе проекта и истории изменений и может работать над ним независимо.

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

Давайте более подробно рассмотрим, как работает Git.

Как работает Гит?

Git позволяет пользователям хранить, отслеживать и управлять изменениями кода в проекте с помощью набора интуитивно понятных команд, выполняемых из командной строки.

По своей сути проект Git представляет собой каталог, содержащий репозиторий (репозиторий), скрытую папку, в которой отслеживается история проекта. Когда файл внутри проекта изменяется, репозиторий отслеживает изменения и сохраняет запись, называемую фиксацией, в скрытой папке .git/.

Git записывает каждое изменение, отслеживая состояние файла, которое может быть одним из следующих трех состояний:

  • Изменено
  • Постановка
  • Преданный идее

Каждый раз, когда вы изменяете файл, не фиксируя его в базе данных, Git меняет его состояние на изменен.

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

Наконец, когда вы фиксируете изменения в своем репозитории, Git меняет состояние файла на committed: это означает, что данные хранятся в вашем локальном репозитории.

Git использует хэш SHA-1 (строка из 40 символов) для хранения этих изменений данных. Это делает невозможным изменение или повреждение сохраненной информации без обнаружения Git.

Но поскольку все изменения хранятся в папке .git/, вся история версий может быть потеряна, если эта папка будет удалена случайно. Поэтому папка .git/ по умолчанию скрыта, чтобы предотвратить случайное изменение или удаление.

То, как Git хранит и обрабатывает изменения, отличает его от других систем контроля версий. Большинство систем контроля версий, таких как Subversion и Perforce, используют дельта-систему контроля версий.

Это означает, что они хранят информацию на основе разницы между предыдущей и текущей версиями файла. Вот диаграмма, наглядно демонстрирующая, как это работает:

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

Это обеспечивает большую эффективность и делает Git больше, чем просто заурядной системой контроля версий.

Вот диаграмма, которая наглядно демонстрирует систему контроля версий Git:

Помимо уникального подхода к обработке данных, Git также хранит файлы локально. Это устраняет проблемы с задержкой в ​​сети, которые могут замедлить процесс разработки.

А если вы хотите работать удаленно, вы можете использовать облачный сервис хостинга репозитория Git, такой как GitLab, BitBucket или GitHub, сервис, которым пользуются более 73 миллионов разработчиков, согласно отчету GitHub за 2021 год.

Git против GitHub: объяснение различий

Если вы используете Git для контроля версий, вам, вероятно, в какой-то момент понадобится использовать GitHub. Хотя Git и GitHub выполняют похожие задачи, между ними есть явная разница. Понимание разницы между Git и GitHub поможет вам получить максимальную отдачу от каждого инструмента.

Git — это локальное программное обеспечение для управления версиями, которое вы можете загрузить, установить и использовать из командной строки. Напротив, GitHub — это облачный репозиторий хостинг, который предлагает все функции Git, кроме своего собственного уникального набора функций, такого как графический пользовательский интерфейс (GUI).

GitHub предлагает бесплатный план с базовыми функциями управления версиями, которые позволяют вам удаленно работать над проектами. Вы можете начать использовать его, зарегистрировав учетную запись с помощью веб-браузера или загрузив его настольную версию для Windows или macOS.

Хотя Git и GitHub тесно связаны, они принадлежат разным организациям.

Git — это программное обеспечение с открытым исходным кодом, принадлежащее некоммерческой организации Software Freedom Conservancy. GitHub — это коммерческое предложение Программное обеспечение как услуга, принадлежащее Microsoft Corporation.

Хотите знать, что вы должны использовать? Вот окончательный ответ.

Git лучше всего использовать в качестве программного обеспечения для контроля версий для локальных проектов разработки, тогда как GitHub идеально подходит для размещения репозиториев в облаке и удаленной совместной работы над проектами.

Если вам нравится работать в интерфейсе командной строки и в основном работать над проектами локально, вы можете использовать Git. Он впишется прямо в ваши существующие рабочие процессы. Но если вы предпочитаете графический интерфейс и работаете в сотрудничестве с другими разработчиками, вы будете чувствовать себя как дома с GitHub.

Ключевые преимущества использования Git для контроля версий

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

Вот обзор преимуществ использования Git.

Легко отслеживайте версии файлов

Git позволяет отслеживать каждое изменение, внесенное в проект на протяжении всего жизненного цикла разработки. Кроме того, он позволяет отслеживать, когда проект был изменен, просматривать, кто внес изменения, и быстро откатывать к более старому коммиту.

Упростите совместную работу над проектами

Одним из лучших применений Git, помимо контроля версий, является упрощение совместной работы между командами. Git позволяет создавать независимые ветки разработки и одновременно работать над разными частями кодовой базы.

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

Повысьте производительность команды

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

Исследование GitHub показывает, что наличие группового репозитория повышает производительность разработчиков на 11%, а разработчики почти на 60% больше чувствуют себя готовыми выполнять свою работу.

Улучшить избыточность данных

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

Интеграция с ведущими инструментами разработки программного обеспечения

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

10 основных команд Git, которые вы должны знать

Вот краткое введение в десять наиболее часто используемых команд Git.

git инициировать

Команда git init инициализирует или создает новый репозиторий Git внутри существующего каталога. Это первая команда, которую вы будете использовать при запуске Git. Он создает новый проект и добавляет скрытый каталог git для хранения данных контроля версий.

git клон

Команда git clone создает локальную копию удаленно существующего проекта Git. Он копирует все файлы в каталоге проекта, включая основные файлы проекта, историю изменений и существующие ветки.

git добавить

Команда git add добавляет один или несколько измененных файлов в список файлов, которые будут включены в следующую фиксацию. Файлы, отмеченные с помощью этой команды, включаются в моментальный снимок истории проекта, когда вы выполняете команду git commit для отслеживания изменений версии.

git совершить

Команда git commit создает моментальный снимок истории проекта и изменяет состояние всех промежуточных файлов на зафиксированные. Эта команда завершает процесс отслеживания версий.

статус git

Команда git status показывает состояние файла или рабочего каталога как неотслеживаемое, измененное или подготовленное. Он не показывает никакой информации об истории зафиксированного проекта и выводит только состояние файлов, отслеживаемых Git, и файлов, которые были подготовлены.

ветка git

Команда git branch показывает все ветки в вашем локальном репозитории. Ветка Git — это изолированный проект внутри основного проекта, который вы можете использовать для тестирования кода, не затрагивая основную кодовую базу.

Вы также можете использовать команду git branch, чтобы добавить новую ветку и удалить существующую.

git слияние

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

git тянуть

Команда git pull извлекает содержимое из удаленного репозитория и обновляет локальную линию разработки в соответствии с удаленным содержимым. Вы можете использовать запрос на вытягивание для обновления локального репозитория, когда несколько разработчиков вносят изменения в основную ветку в облаке.

git push

Команда git push загружает содержимое локального репо в удаленное репо. Он «отправляет» или экспортирует коммиты из локальной линии разработки в удаленные ветки. Вы должны использовать команду git push с осторожностью, так как она может перезаписать изменения в центральном репозитории.

git касса

Команда git checkout обновляет все файлы в рабочем каталоге, чтобы они соответствовали последней версии, хранящейся в текущей ветке, и записывает все новые коммиты. Вы можете использовать команду git checkout для навигации по другим веткам и изменения хранящихся в них данных.

Заключительные мысли: руководство для начинающих по Git

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

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

Git предоставляет централизованный репозиторий, в котором хранятся все изменения проекта, и каждому соавтору предоставляется собственная копия репозитория. В результате вы можете продолжать разработку локально, сотрудничая удаленно.

Первоначально опубликовано на https://www.20i.com 16 августа 2022 г.