Что такое Git ?

Ранее мы с вами разрабатывали программу, архивировали ее и пересылали друг другу архив с выполненным заданием. Представьте, что над такой программой будут работать не 2 человека, а 10 и каждый раз пересылать архив создает следующие неудоства:

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

  • Мы не знаем кто и какие изменения внес в нашу программу. Мы можем пойти по люям и спрашивать их, но на это будет уходить огромное кол-во времени6 которое будет расти в геометрической прогрессии

  • А что будет если разработчик уйдет с проекта не закончив его ? Мы рискуем потерять его изменения.

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

Компоненты Git

В Git выделяют следующие основные компоненты:

  • Рабочая директория. По сути это наш код, который мы пишем. Мы можем добавлять файлы, изменять, удалять как это делаем сейчас. представьте себе школу, 1 класс, когда у вас 2 тетради: черновик и чистовик. Черновик - это и есть наша рабочая директория.

  • Индекс. Теперь когда наш черновик написан, мы готовы начать переносить изменения в чистовик. Мы можем переносить текст полностью из черновика, можем переносить его частично, а можешь переносить с измененным содержанием. Таким образом мы выбираем какие файлы либо даже какие строки из файла мы собираемся сохранить в Git.

  • Коммит - это наш итоговый патч с изменением, который отображает шаг в истории нашего проекта. Представьте, что вы отдаете ваш чистовик учителю на оценку и у вас уже нет возможности изменить его. Ваш сданный и проверенный чистовик это текущее состояние (или по другому snapshot) вашего проекта. Коммитов в проекте может быть множество, каждый коммит следует друг за другом, создавая тем самым историю.

  • Ветка - это слепок нашего кода имеющий собственную историю коммитов. Каждый раз когда мы создаем нашу ветку, мы можем не бояться, что наши изменения сломают изменения из другой ветки, тем самым получая изолированность наших изменений. По ходу работы над нашим проектом ветки могут как созаваться и удаляться, так и сливаться. Слияние это обединение истории между двух веток в одно целое.

Установка Git

проблем с установкой гита у вас возникнуть не должно. Если у вас linux, то попробуйте установить git с помощью вашего пакетного менеджера (apt/dnf install git). Если у вас MacOS, то рекомендую сначала установить Homebrew с помощью команды /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)", а после установить с помощью него Git: brew install git. Если вы не смотря на мои предостережния продолжаете разрабатывать на Windows, то сами разберетесь как установить 😄

Базовая настройка Git

Перед тем как продолжить, давайте настроим git

  • Введите git config --global user.name "Ваше имя". Таким образом каждый ваш коммит будет подписан вашим именем

  • Введите git config --global user.email example@example.com. А за счет этого коммит также будет иметь информацию о вашем email.

Last updated