Сучасна розробка неможлива без Git. Уявіть команду програмістів, які одночасно працюють над одним проєктом: хтось додає нову функцію, інший виправляє помилки, а ще хтось тестує оновлення. Як усе це координувати, щоб не втрачати зміни та зберігати порядок у коді? Саме для цього потрібен Git.
Git – це не просто зручний інструмент, а стандарт у сфері розробки. Його використовують компанії по всьому світу для контролю версій і командної роботи. Якщо ви плануєте кар'єру в IT, знання Git – це must-have, адже без нього неможливо ефективно працювати на реальних проєктах.
Чому Git незамінний у роботі розробника:
Нижче ми розберемося:
Перед початком роботи з Git його потрібно встановити на ваш комп'ютер. Процес встановлення залежить від операційної системи.
git --version
git --version
brew install git
На більшості дистрибутивів Linux Git можна встановити через менеджер пакетів:
sudo apt update && sudo apt install git
sudo dnf install git
sudo pacman -S git
Щоб перевірити успішність встановлення, виконайте команду:
git --version
Після встановлення Git потрібно налаштувати ім'я користувача та 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
Таким чином для кожного коміту в списку відобразиться інформація про:
Часто буває достатньо і меншої кількості інформації, тоді корисні скорочені версії, які для кожного коміту показують не всі дані:
git log --oneline
– показує тільки ідентифікатор і заголовок коміту.git log --pretty=short
– не відображає дату коміту.
Використовуючи додаткові параметри, можна ще точніше налаштувати виведення історії, наприклад, обмежити кількість комітів або відфільтрувати їх за автором.
Розберемо докладніше, що собою являє збереження різних версій в Git.
В нас є 3 області:
Коли ви обрали, що за зміни мають увійти до наступної версії (git add), ви робите так званий коміт (git commit). І таким чином ми отримуємо знімок поточної версії проєкту.
Словосполучення “версія проекту” та “коміт” – синоніми.
Слово коміт, до речі, вживається і у значенні дієслова. Коли ми зробили новий знімок, цю дію програмісти називають закомітити.
Розуміння схеми роботи Git значно полегшує початкове розуміння Git та подальшу роботу з ним.
При створенні коміту ми маємо додати заголовок коміту, який містить короткий опис змін, і можемо додавати більш докладний опис зроблених змін в тілі коміту:
git commit
-m "Заголовок коміту"
Якісно сформовані заголовки комітів допомагають легше орієнтуватися в версіях проєкту. Тому правильно сформовані заголовки є ознакою кваліфікації розробника і цінуються в комерційній розробці. Вони мають бути оформлені в єдиному стилі та добре відображати суть роботи, збереженої в коміті.
Ось стандартні правила оформлення комітів:
Щоб розробники могли спільно працювати над кодом, зручно відстежувати зміни та автоматизувати процеси розробки, використовуються віддалені репозиторії. Їх можна створювати за допомогою різних сервісів для зберігання та управління віддаленими 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 commit --amend
– змінює останній коміт.git restore
– повертає файли до попереднього стану.git reset
– відкатує зміни та коміти.Далі розглянемо, як правильно використовувати ці команди, щоб ефективно виправляти помилки та зберігати чисту історію проєкту.
Якщо ви вже зробили коміт, але забули додати файл або хочете змінити повідомлення коміту, можна використати:
git commit --amend
Ця команда дозволяє:
git commit --amend -m "Нове повідомлення"
git add <ім'я файлу>
git commit --amend
💡 Якщо коміт уже було відправлено у віддалений репозиторій, змінений коміт доведеться примусово запушити:
git push --force
⚠️ Будьте обережні, адже це може спричинити проблеми для інших розробників.
Команда git restore
дозволяє скасувати зміни у файлах без змінення історії комітів.
git restore <ім'я файлу>
git restore .
git restore --staged <ім'я файлу>
💡 git restore
безпечний, оскільки не змінює історію комітів.
Команда git reset
використовується для зміни історії комітів і видалення змін із різних областей Git. Наприклад, прибрати файл з індексу (залишити зміни в робочій директорії):git reset HEAD <ім'я файлу>
⚠️ Також git reset
дозволяє скасовувати коміти, тому треба бути обережним з цією командою..
Git надає потужні інструменти для зміни та скасування дій. Якщо потрібно просто відкотити зміни у файлі, використовуйте restore
. Якщо треба змінити коміт, застосовуйте --amend
. Для серйозних змін в історії комітів– reset
, але обережно!
Git – це потужна система контролю версій, яка допомагає відстежувати зміни, зберігати різні версії проекту та легко співпрацювати з командою. Ми розглянули, як його встановити, налаштувати, працювати з локальними та віддаленими репозиторіями, а також що робити, якщо треба щось скасувати чи змінити.