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

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

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

Еще одним важным понятием при работе с проектами является точка сохранения проекта - коммит (commit). При этом, отличительной чертой каждого коммита является наличие хэша и комментария. На основе таких коммитов строится ветка – история изменений. Репозиторий может содержать в себе несколько веток, (причем, у каждой из них будет название), которые создаются из других веток или вливаются в них.

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

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

 

 

Также, говоря о репозиториях не лишним будет упомянуть о внешних сервисах, которые можно использовать для хранения проектов в Интернете. Это прежде всего, всем известный GitHub, где любой желающий может создать свой аккаунт и разместить исходный код своего проекта. Также можно упомянуть такие проекты, как BitBucket и GitLab.

Далее в статье мы посмотрим установку и настройку Git в ОС Ubuntu Linux.

Устанавливаем Git

Пакеты Git доступны с помощью менеджера пакетов apt. Для установки выполним следующие команды:

sudo apt-get update

sudo apt-get install git-all

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

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

git config –global user.name “<Имя_пользователя>”

git config –global user.email “<EMail_пользователя>”

Также можно привязать команду к псевдониму, для того, чтобы использовать сокращенный вариант команды:

git config –global alias.st “status -s”

В результате мы можем использовать git st вместо более длинного варианта git status -s

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

git init

Чтобы инициализировать репозиторий для нового проекта, Git создает скрытый каталог с именем .git. В этом каталоге хранятся все объекты и ссылки, которые Git использует и создает как часть истории вашего проекта. Скрытый каталог .git - это то, что отделяет обычный каталог от репозитория Git.

Также можно использовать команду

git init <каталог>

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

Также, важной функцией является возможность клонировать репозиторий с GitHub, на локальную машину, включая все файлы, ветки и коммиты.

git clone https://<путь_к_проекту>

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

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

Далее нам необходимо добавить файлы нашего проекта в репозиторий. Для этого можно воспользоваться командой:

git add <файлы_проекта>

Если необходимо добавить все файлы, то можно указать символ *.

Далее необходимо добавить коммит, поясняющий выполненное действие:

git commit -m “Текст_коммита”

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

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

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

git status

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

Так, на представленном рисунке команда сообщает, что file1.txt был модифицирован и предлагает добавить изменения в репозиторий и закомиттить их.

В случае выполнения команды git commit -a нам будет предложено в текстовом редакторе добавить необходимый текст.

Заключение

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

А сейчас хочу пригласить вас на бесплатный урок: "Автоматизация развертывания узлов с использованием cloud-init".

Технология cloud-init в современном DevOps стала де факто стандартом для описания сценария первоначальной настройки узлов в облачной инфраструктуре. На открытом уроке мы рассмотрим основные подходы cloud-init, его отличие от систем управления конфигурацией Puppet и Ansible, научимся создавать конфигурацию и выполнять ее тестирование, а также обсудим использование cloud-init совсестно с облачными провайдерами.

Комментарии (11)


  1. Kodzo
    27.06.2023 14:00
    +8

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


    1. MaxRokatansky
      27.06.2023 14:00
      -2

      Эта статья предназначена для новичков, которым данная тема интересна, а не для воинов минусаторов)


      1. Kodzo
        27.06.2023 14:00
        +2

        А сколько уже таких одинаковых статей можно найти?) буквально слово в слово


      1. lair
        27.06.2023 14:00
        +4

        У любого новичка есть возможность запустить sudo apt-get update, но нет возможности прочитать Pro Git?


  1. savostin
    27.06.2023 14:00
    +1

    <зануда>а вы под рутом работаете</зануда>


    1. dbax
      27.06.2023 14:00
      +2

      И в догонку - а зачем под рутом sudo?


      1. iig
        27.06.2023 14:00

        Элементарно. Если вдруг забыл зайти под root :)


        1. dbax
          27.06.2023 14:00

          Из серии: "А на этот случай у меня проездной!"?


  1. nronnie
    27.06.2023 14:00
    +5

    Прежде всего это централизованное хранение версий файлов исходных кодов проектов.

    В сотый раз. Ну зачем начинать с того, чтобы вводить новичков в заблуждение. Особенность Git, которая отличаете го, например, от SVN или TFS, это то, что он децентрализован. Использование какого-то удаленного выделенного репозитория, как центрального делается просто для удобства чтобы отдельные локальные репо синхронизировать через один общий, а не устраивать чехарду с синхронизацией между собой. Более того Git вообще не требует специального отдельного сервера и вполне может использоваться одним-единственным разработчиком локально, если ему нужна просто история изменений.


    1. saboteur_kiev
      27.06.2023 14:00
      +1

      да ладно, последние 5 лет люди не знают чем гит отличается от гитхаб, что уж тут...


    1. Tasta_Blud
      27.06.2023 14:00
      +2

      скоро дождёмся формулировки "это хранение файлов исходных кодов проектов" или

      -- зачем нужен Git?

      -- чтобы проект увидели другие люди.

      да-да, без упоминания не только децентрализации но и версионности

      "все серьёзные проекты используют Git", вот и всё, что будут знать люди.