March 20, 2025

Що таке Git і як почати з ним працювати

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

Git – це не просто зручний інструмент, а стандарт у сфері розробки. Його використовують компанії по всьому світу для контролю версій і командної роботи. Якщо ви плануєте кар'єру в IT, знання Git – це must-have, адже без нього неможливо ефективно працювати на реальних проєктах.

Чому Git незамінний у роботі розробника:

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

Нижче ми розберемося:

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

Встановлення Git

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

Встановлення на Windows

  1. Завантажте інсталятор з офіційного сайту: git-scm.com.
  2. Запустіть інсталятор та слідуйте інструкціям. Рекомендується залишити налаштування за замовчуванням.
  3. Після завершення встановлення відкрийте Git Bash або Командний рядок і виконайте команду:
    git --version
    Якщо Git встановлено правильно, ви побачите номер версії.

Встановлення на macOS

  • Відкрийте Термінал і введіть команду:
    git --version
    Якщо Git уже встановлено, то в терміналі відобразиться його версія.
  • Якщо Git не встановлено, ви отримаєте пропозицію встановити його через Xcode Command Line Tools. Просто натисніть Install та дочекайтеся завершення процесу.
  • Альтернативно, можна встановити Git через Homebrew:
    brew install git

Встановлення на Linux

На більшості дистрибутивів Linux Git можна встановити через менеджер пакетів:

  • Ubuntu/Debian:
    sudo apt update && sudo apt install git
  • Fedora:
    sudo dnf install git
  • Arch Linux:
    sudo pacman -S git

Щоб перевірити успішність встановлення, виконайте команду:

 git --version

Початкове налаштування Git

Після встановлення Git потрібно налаштувати ім'я користувача та email. Це важливо, оскільки кожен коміт буде містити інформацію про автора.

Налаштування імені користувача та email

Відкрийте термінал або командний рядок і виконайте команди:

git config --global user.name "Ваше Ім'я"

git config --global user.email "your.email@example.com"

💡 Email можна знайти у вашому обліковому записі GitHub, GitLab або іншого сервісу, де ви працюєте з репозиторіями (якщо облікового запису не існує, його потрібно створити). Переконайтеся, що він збігається з тим, який використовується у вашому профілі.

Перевірити правильність налаштувань можна командою:

git config --list

❔Для чого писати --global

Налаштування для Git можна задавати на різних рівнях, і від цього залежить на які проєкти будуть діяти ці налаштування:

  • Локальні (--local) налаштування діють тільки у рамках поточного проєкту.
  • Глобальні (--global) – на рівні користувача вашого облікового запису в операційній системі, тобто для всіх ваших проєктів. 
  • Системні (--system) – на всіх користувачів системи.

Якщо налаштувати один і той самий параметр на різних рівнях, то найпріоритетніші – це встановлені з опцією --local, далі – з --global, і найменш пріоритетні – з --system.

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

Налаштування переносу рядків

Якщо ви використовуєте Windows, виконайте команду:

git config --global core.autocrlf true

Для Linux/macOS:

git config --global core.autocrlf input

Це допоможе уникнути проблем з переносами рядків при роботі з файлами між різними операційними системами.

Після налаштування Git можна створити локальний репозиторій для роботи над проєктом.

Робота з локальним репозиторієм

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

Створення репозиторію

Щоб ініціалізувати новий Git-репозиторій у папці з вашим проєктом, виконайте команду:

git init

Ця команда створить приховану папку .git, де зберігатиметься вся історія змін.

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

Додавання файлів у репозиторій

Додайте файли у список відстежуваних (в індекс):

git add <ім'я файлу>

Щоб додати всі файли в поточній директорії (папці):

git add .

Фіксація змін (коміт)

Після додавання файлів виконайте коміт із повідомленням:

git commit -m "Опис змін"

Це збереже стан проєкту на даний момент.

Як правильно сформулювати Опис змін, описано нижче

По факту, збереження змін відбувається циклічно за схемою:

Перевірка статусу

Щоб побачити, які файли змінилися або ще не додані в коміт, використовуйте:

git status

Перегляд історії змін

Щоб переглянути список комітів, використовуйте:

git log

Таким чином для кожного коміту в списку відобразиться інформація про:

  • Ідентифікатор коміту (hash) – унікальний хеш кожного коміту.
  • Автора коміту – хто зробив зміни.
  • Дату коміту – коли були зроблені зміни.
  • Заголовок коміту – опис змін, які були внесені.

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

git log --oneline – показує тільки ідентифікатор і заголовок коміту.
git log --pretty=short – не відображає дату коміту.

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

Збереження різних версій проєкту в git

Розберемо докладніше, що собою являє збереження різних версій в Git.

В нас є 3 області: 

  • робоча директорія – це папка з файлами проєкту. Тут ми працюємо з проєктом та вносимо зміни;
  • зона індексації, яку також називають областю підготовки або областю додавання. Її можна уявити собі як список змін, які ми підготували до збереження в наступному коміті;
  • репозиторій. Фактично, репозиторієм називають папку з назвою .git, в якій в спеціальному вигляді зберігаються всі версії проєкту. 

Коли ви обрали, що за зміни мають увійти до наступної версії (git add), ви робите так званий коміт (git commit). І таким чином ми отримуємо знімок поточної версії проєкту. 

Словосполучення “версія проекту” та “коміт” – синоніми.

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

Розуміння схеми роботи Git значно полегшує початкове розуміння Git та подальшу роботу з ним.

Правила супроводження комітів інформацією

При створенні коміту ми маємо додати заголовок коміту, який містить короткий опис змін, і можемо додавати більш докладний опис зроблених змін в тілі коміту:

git commit -m "Заголовок коміту"

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

Ось стандартні правила оформлення комітів: 

  • Заголовок коміту – має чітко пояснювати, які зміни внесено. 
  • Заголовок коміту починаємо з великої літери.
  • Перший коміт зазвичай називається Initial commit.
  • Стиль заголовку – наказовий спосіб (“Add …”, “Fix …”, …).
  • Крапок у кінці не ставимо!
  • Тіло коміту – це додаткова інформація про коміт. Крапок також не треба!

Віддалені репозиторії

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

Назва репозиторію має бути унікальною в рамках вашого профілю на GitHub.

Назву репозиторіїв зазвичай роблять в кебаб-кейсі.

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

git remote 

Прив’язка віддаленого репозиторія до локального

Зокрема, якщо у вас є локальний репозиторій, який потрібно під’єднати до віддаленого, виконайте команду

git remote add origin <URL_репозиторія>

Тут прив’язаному віддаленому репозиторію дається стандартна назва origin.

Локальний → віддалений

Після внесення змін у файли локального репозиторію потрібно їх закомітити та відправити у віддалений репозиторій:

git push origin main

Ця команда надсилає закомічені зміни у гілку main на GitHub.

Віддалений → локальний

Аналогічно можна навпаки підтягувати новіші зміни з віддаленого репозиторію в локальний:

git pull origin main

Клонування віддаленого репозиторія

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

git clone <URL_репозиторія> 

Цей процес називається клонуванням.

Загалом схематично напрямок роботи команд показує наступний рисунок:

Операції відміни та зміни комітів у Git

При роботі з Git розробники часто стикаються з необхідністю скасувати зміни або виправити помилки. Наприклад, ви могли:

  • Забути додати файл до останнього коміту.
  • Зробити помилковий коміт або запушити некоректні зміни.
  • Випадково змінити або видалити файли.

На щастя, Git надає кілька інструментів для керування історією та відміни змін:

  • git commit --amend – змінює останній коміт.
  • git restore – повертає файли до попереднього стану.
  • git reset – відкатує зміни та коміти.

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

Зміна останнього коміту

Якщо ви вже зробили коміт, але забули додати файл або хочете змінити повідомлення коміту, можна використати:

git commit --amend

Ця команда дозволяє:

  • Змінити повідомлення коміту:
    git commit --amend -m "Нове повідомлення"
  • Додати файли до останнього коміту:
    1. Додаємо файли:
      git add <ім'я файлу>
    2. Виконуємо команду --amend:
      git commit --amend
      Це оновить останній коміт без створення нового.

💡 Якщо коміт уже було відправлено у віддалений репозиторій, змінений коміт доведеться примусово запушити:

git push --force

⚠️ Будьте обережні, адже це може спричинити проблеми для інших розробників.

Відновлення змінених файлів

Команда  git restore  дозволяє скасувати зміни у файлах без змінення історії комітів.

  • Скасування змін у робочій директорії (відновлення останньої закоміченої версії файлу):
    git restore <ім'я файлу>
  • Скасування всіх змін у робочій директорії:
    git restore .
  • Скасування додавання файлу в індекс (staging area):
    git restore --staged <ім'я файлу>

💡 git restore безпечний, оскільки не змінює історію комітів.

Відкат змін

Команда  git reset  використовується для зміни історії комітів і видалення змін із різних областей Git. Наприклад, прибрати файл з індексу (залишити зміни в робочій директорії):
git reset HEAD <ім'я файлу>

⚠️ Також  git reset дозволяє скасовувати коміти, тому треба бути обережним з цією командою..

Коли яку команду використовувати?

Git надає потужні інструменти для зміни та скасування дій. Якщо потрібно просто відкотити зміни у файлі, використовуйте  restore. Якщо треба змінити коміт, застосовуйте --amend. Для серйозних змін в історії комітів– reset, але обережно!

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