Як вивчити Git: роадмап для DevOps-початківців

Git — одна з основних концепцій, які має знати DevOps-інженер. Це повноцінна система керування версіями, яка допомагає організувати спільну роботу над проєктами. Розберімося, чому навички роботи з Git такі важливі для методології DevOps та як початківцям опанувати цей інструмент.

Що таке Git

Git — це безплатна розподілена система контролю версій з відкритим вихідним кодом, призначена для швидкої та ефективної роботи з проєктами будь-якого розміру. Git використовується для відстеження змін у вихідному коді, дозволяючи декільком спеціалістам працювати разом над нелінійною розробкою. 

Git створив Лінус Торвальдс у 2005 році для розробки ядра Linux, а саме тоді, коли команда розробників ядра Linux більше не могла безоплатно використовувати подібний інструмент з назвою BitKeeper.

Тепер Git фактично став системою контролю версій, якою користуються розробники в усьому світі. Він дозволяє легко розробляти код, співпрацювати, вносити зміни в код та відстежувати їх.

Такі платформи, як GitHub, GitLab або Bitbucket, побудовані на основі Git. Крім стандартної системи контролю версій вони мають додаткові функції, які допомагають та покращують процес розміщення коду у віддаленому репозиторії Git. Наприклад, за допомогою GitHub Actions можна налаштувати весь конвеєр CI/CD, тому зникає необхідність використовувати кілька інструментів для цього.

Крім того, ці платформи можуть інтегруватися з іншими інструментами CI/CD, які мають відкритий вихідний код.

Чому Git важливий для DevOps

Наводимо декілька ключових факторів, чому DevOps-інженерам варто вміти працювати з Git.

Щоб говорити з розробниками однією мовою

Одним із ключових завдань DevOps-інженера є проєктування та розробка конвеєрів CI/CD. Git відіграє ключову роль у побудові CI/CD-процесів, проте досі не існує єдиного стандарту для створення гілок та воркфлоу в Git. Іноді DevOps-інженерам потрібно обговорити з розробниками правильний підхід до Git-гілок в конвеєрі CI/CD. Це може стосуватися тегування, версійності релізів тощо.

Щоб працювати з Infrastructure as Code

Спеціалісти розроблюють та підтримують весь інфраструктурний код у Git: конвеєр Jenkins, плейбук Ansible чи модуль Terraform. До інфраструктурного коду варто ставитися так само як і до коду застосунків. Це означає, що код інфраструктури проходить ті ж самі модульні та інтеграційні тести перед розгортанням у будь-якому середовищі. 

Навіть такий код повинен мати свій конвеєр CI/CD. Хоча більшість компаній не використовують розробку через тестування для інфраструктурного коду, проте це стандартний спосіб розробки.

Щоб впровадити GitOps

Завдяки технічній практиці GitOps Git виступає джерелом істини для всіх конфігурацій інфраструктури. У GitOps будь-які зміни у конфігураційних файлах автоматично впроваджуються в інфраструктуру. Тобто якщо змінювати ці файли в Git, зміни автоматично впроваджуються в інфраструктуру. 

Це дуже зручно для DevOps-інженерів, тому що можна контролювати всю інфраструктуру через Git, що дозволяє легко відстежувати зміни, робити відкати у разі потреби та працювати в команді над одними та тими ж файлами.

Роадмап вивчення Git

Дотримуючись цієї простої дорожньої карти, можна швидко навчитися використовувати Git для ефективного контролю версій і спільної розробки програмного забезпечення. 

Для опанування Git не забувай заглядати у документацію: базовий та просунутий рівень.

1. Зрозуміти системи контролю версій та основ Git

Як вже згадувалось, системи контролю версій — це програмні інструменти, які допомагають командам розробки керувати змінами у вихідному коді. Оскільки середовища розробки прискорилися, системи контролю версій допомагають командам працювати швидше і розумніше. Вони особливо корисні для команд DevOps, оскільки допомагають скоротити час розробки та збільшити кількість успішних розгортань.

Почни з ознайомлення з основними поняттями Git. Дізнайся про репозиторії, комміти, гілки (branches) та злиття (merge). Зрозумій, як Git відстежує зміни та керує версіями коду.

Далі перейди до розподіленої системи контролю версій (DVCS). Вона доставляє локальну копію повного репозиторію на комп’ютер кожного члена команди, щоб вони могли локально коммітити та мержити код. Серверу не потрібно зберігати фізичний файл для кожної гілки — йому потрібні лише відмінності між кожним коммітом.

Розподілені системи контролю версій допомагають командам розробників програмного забезпечення створювати ефективні воркфлоу та ієрархії, коли кожен розробник вносить зміни коду до власного сховища, а далі встановлюється процес перегляду коду, щоб до основного репозиторію потрапив лише якісний код.

2. Встановити Git

Щоб почати працювати з Git, потрібно інсталювати його на свій комп’ютер. Перейди за посиланням на офіційний сайт Git та встанови його за інструкцією для твоєї операційної системи.

3. Познайомитися з Git-клієнтами

Git постачається з вбудованими графічними інструментами для компіляції та перегляду. Проте є кілька сторонніх інструментів для користувачів, якими можна користуватися. Детальніше про них можна дізнатися на сторінці Git.

4. Налаштувати Git

Після встановлення налаштуй середовище Git. Встанови ім’я користувача та адресу електронної пошти за допомогою команди git config:

git config --global user.name "Your Name" 
git config --global user.email "[email protected]"

Ця інформація буде використана для ідентифікації твоїх коммітів.

5. Створити репозиторій

Щоб створити свій перший репозиторій, перейди до каталогу проєкту на комп’ютері та ініціалізуй його як сховище Git за допомогою команди git init. Це призведе до створення прихованої теки .git, у якій зберігатиметься вся інформація про управління версіями.

6. Вивчити базові команди Git

Варто почати з основних команд Git: git add, git commit та git status. Після їхнього опанування ти зрозумієш, як створювати зміни, фіксувати їх у сховищі та переглядати статус своїх файлів.

7. Розібратися з Branch&Merge 

Розберися з можливостями розгалуження в Git. Для створення нової гілки використай команду git branch new-branch, де замість new-branch напиши потрібну назву гілки. 

Використовуй команду git checkout new-branch для переходу до новоствореної гілки. 

Після внесення змін ти можеш об’єднати цей бранч з основною гілкою, яка зазвичай називається master або main, за допомогою git merge. Також можна створити pull request, щоб колеги могли переглянути цей код і об’єднати його.

Щоб бути з цією технологією на «ти», навчися створювати бранчі, перемикатися між ними та об’єднувати їх назад у головну гілку. Опануй різні стратегії злиття, наприклад, fast-forward, three-way та squash.

8. Попрацювати з віддаленими репозиторіями

Для спільної роботи потрібно взаємодіяти з віддаленими сховищами. Дізнайся, як клонувати віддалені репозиторії за допомогою команди git clone. Потренуйся отримувати та пушити зміни до віддалених сховищ за допомогою таких команд, як git fetch, git pull та git push.

9. Навчитися вирішувати конфлікти  

Під час співпраці з іншими користувачами можуть виникати конфлікти при об’єднанні змін з різних гілок. Дізнайся, як вирішувати конфлікти злиття, переглядаючи конфліктні файли, вносячи необхідні зміни та фіксуючи вирішені конфлікти.

10. Зрозуміти Git-воркфлоу

Розуміння загальних воркфлоу в Git, таких як feature branch, Gitflow або GitHub flow. Ці воркфлоу визначають правила співпраці, управління гілками та випуску коду.

Післяслово

Вивчення Git — це лише перший крок на шляху до DevOps. Щоб стати DevOps-інженером, треба опанувати ще й інші технологій та інструменти: контейнеризацію з Docker, оркестрування з Kubernetes, автоматизацію з Ansible, моніторинг з Prometheus та Grafana тощо. Звичайно, ти можеш все це вивчити самостійно. Але якщо ти не бажаєш ускладнювати свій шлях до DevOps, тобі допоможуть курси від ITEDU. Наші викладачі — це практики з багатьма роками у сфері.

Залишити відповідь

Дякуємо, що поділились