1. Початок роботи: клонування проєкту
Почнемо з того, на чому ви зупинилися у попередній лекції. У вас є репозиторій, створений на GitHub, і тепер потрібно отримати його локальну копію на свій компʼютер, щоб розпочати роботу. Цей процес називається клонуванням.
Крок 1. Запустіть свою IDE. Якщо у вас відкрито якийсь проєкт, закрийте його через File -> Close Project. На стартовому вікні оберіть Clone Repository або Get from VCS.
Крок 2. У вікні, що відкрилося, вставте URL вашого репозиторію. Такий спосіб корисний, якщо ви клонуватимете чийсь репозиторій. URL можна скопіювати зі сторінки репозиторію на GitHub.
Якщо ви клонуватимете свій репозиторій (наш варіант), найпростіше увійти до свого облікового запису GitHub безпосередньо з IDE. Для цього оберіть опцію Log in to GitHub. IDE відкриє браузер для авторизації.
На сторінці, що відкрилася, натисніть зелену кнопку Авторизувати JetBrains. Після цього ви зможете обирати свої репозиторії безпосередньо зі списку в IDE. Оберіть потрібний проєкт і натисніть Clone.
Крок 3. IDE запитає, чи довіряєте ви цьому проєкту. Оскільки це ваш власний репозиторій, натисніть Trust Project.
Крок 4. Налаштування антивірусу (для користувачів Windows)
Антивірус Windows може попередити, що IDE намагається виконати невідомі для нього дії. Оскільки ви збираєтеся створювати й запускати програми, потрібно дозволити IDE працювати без обмежень. Натисніть кнопку Автоматично, щоб IDE сама додала потрібні каталоги до виключень антивірусу.
2. Збереження змін: Commit
commit — це «знімок» або збережений стан вашого проєкту в певний момент часу. Думайте про нього як про точку збереження в грі: ви завжди можете повернутися до неї, якщо щось піде не так. У кожного коміту є унікальний ідентифікатор і повідомлення, яке описує зроблені зміни.
gitGraph
commit id: "Initial commit"
commit id: "Add user authentication"
commit id: "Fix login button bug"
commit id: "Refactor database connection"
Історія комітів. Кожен новий коміт будується на основі попереднього, формуючи хронологію розвитку проєкту.
Крок 1. Внесіть зміни.
Якщо ви щойно клонували репозиторій, він міститиме лише один файл — README.md.
Відкрийте файл README.md і додайте в нього опис вашого проєкту. Щойно ви почнете редагувати файл, IDE підсвітить його імʼя синім кольором на панелі проєкту. Це означає, що файл було змінено, але зміни ще не збережені у Git. IDE додасть зелену лінію там, де ви внесли зміни.
Крок 2. Відкрийте вікно Commit.
Ліворуч в IDE є вкладка Commit. Відкривши її, ви побачите всі зміни, готові до збереження. Для першого коміту цьому вікну варто приділити особливу увагу.
Розберімося, що ми бачимо:
- Changes: тут містяться файли, які вже відстежуються у Git, але були змінені. У нашому випадку це
README.md, куди ми додали план проєкту. - Unversioned Files: це нові файли, які Git бачить у каталозі проєкту, але ще не відстежує.
Можливо, виникне питання: чи потрібно додавати всі ці службові файли до репозиторію?
Гарна новина: коли ми створювали репозиторій на GitHub, ми обрали шаблон .gitignore. Цей файл уже містить правила, які кажуть Git ігнорувати непотрібні каталоги або файли. Про це докладніше наприкінці лекції.
Поки наше завдання для першого коміту — додати всі основні файли проєкту до історії й написати повідомлення коміту.
Крок 3. Зробіть коміт.
Натисніть кнопку Commit. Готово! Ви зберегли «знімок» вашого проєкту в локальному репозиторії. Файл знову стане звичайного кольору.
3. Надсилання змін на GitHub: Push
Ваші коміти наразі зберігаються лише на вашому компʼютері. Щоб поділитися ними з командою або зберегти їх у надійному місці, треба надіслати їх на віддалений репозиторій — GitHub.
sequenceDiagram
participant Локальний репозиторій (ваш компʼютер)
participant Віддалений репозиторій (GitHub)
note over Локальний репозиторій (ваш компʼютер): Ви зробили один або кілька комітів.
Вони існують тільки тут.
Локальний репозиторій (ваш компʼютер) ->> Віддалений репозиторій (GitHub): git push (відправити коміти)
note over Віддалений репозиторій (GitHub): Ваші коміти скопійовані
і надійно збережені на сервері.
Крок 1. Натисніть на кнопку Push.
У правому верхньому куті IDE є зелена стрілка вгору — це кнопка Push. Натисніть на неї.
Крок 2. Перевірте й підтвердіть.
Відкриється вікно, де ви побачите всі коміти, які готові до надсилання. Це ваш останній шанс упевнитися, що ви надсилаєте саме те, що потрібно. Натисніть Push.
Якщо все минуло успішно, ви побачите повідомлення: Pushed commits to origin/main. Create pull request
Крок 3. Перевірте результат на GitHub.
Після успішного надсилання відкрийте сторінку вашого репозиторію на GitHub. Ви побачите, що ваші зміни зʼявилися там.
4. Панель керування Git
В IDE є спеціальне меню Git, яке можна знайти у верхній панелі. Це ваш центр керування версіями. Познайомимося з його ключовими пунктами.
Commit: відкриває вже знайоме вікно для збереження змін.Push: відкриває вікно для надсилання ваших комітів на GitHub.Update Project: дуже важлива функція. Вона завантажує свіжі зміни від інших учасників команди (виконуєgit pull). Виконуйте її щодня перед початком роботи.Branches: відкриває вікно для керування гілками. З цим ми детально розберемося в наступній лекції.Show Git Log: показує всю історію комітів вашого проєкту — ваша особиста машина часу.
5. Використання .gitignore‑файлів
Якщо ви додали до свого проєкту якісь службові файли і не хочете, щоб вони випадково потрапили до репозиторію, можете додати їх до переліку ігнорування. Для цього є файл із назвою .gitignore. Це дуже зручно, коли в проєкті є файли, які не потрібно зберігати в системі контролю версій (наприклад, тимчасові файли, журнали, паролі).
Крок 1. Для прикладу створіть у каталозі проєкту файл, який хочете ігнорувати. Наприклад, notes.txt. Після створення файлу натисніть Скасувати, якщо IDE запропонує додати його до Git.
Крок 2. Клацніть правою кнопкою миші на створеному файлі у вікні Project. Перейдіть до Git → Add to .gitignore → Add to .gitignore. Ця опція додає вибраний файл до файла .gitignore у корені вашого проєкту.
Якщо у вас ще не було файла .gitignore, IDE запропонує його створити. Погодьтеся.
Крок 3. IDE автоматично додасть назву файла до .gitignore.
Після додавання до .gitignore проігноровані файли відображатимуться сірим або коричневим кольором. Під час спроби зробити коміт ці файли буде проігноровано. Каталог .idea також варто додати до ігнорування.
Не забудьте зробити коміт самого файла .gitignore до репозиторію та надіслати зміни на GitHub, щоб усі учасники проєкту користувалися однаковими правилами ігнорування файлів.
Локальні правила ігнорування: .git/info/exclude
Окрім файла .gitignore, який використовується для спільних правил ігнорування файлів для всіх учасників проєкту, Git надає можливість створювати локальні правила ігнорування у файлі .git/info/exclude. Вони не потраплять до репозиторію й діятимуть тільки для вашої локальної копії проєкту.
Це може бути корисно, наприклад, для ігнорування файлів, створених вашою IDE, які не повинні потрапляти в систему контролю версій, але специфічні лише для вас.
Важливо! Локальні правила ігнорування діють тільки для вашої локальної копії репозиторію.
А що, якщо я вже закомітив?
.gitignore ігнорує лише нові, ще не відстежувані файли. Якщо ви вже закомітили файл, він перебуває в історії репозиторію, і Git і надалі відстежуватиме його, навіть якщо ви додасте його до .gitignore. Для таких ситуацій існує команда для терміналу: git rm --cached <file>. Про неї варто почитати окремо.
Правила для .gitignore
У файлі .gitignore вказуються шаблони імен файлів і каталогів, які Git має ігнорувати.
Порожні рядки ігноруються. Щоб додати коментар, почніть рядок із символу #.
Шаблони:
*— замінює будь-яку кількість будь-яких символів. Наприклад,*.logігнорує всі файли з розширенням.log./— у кінці шаблону означає каталог. Наприклад,logs/ігнорує весь вміст каталогуlogs.!— на початку рядка інвертує правило. Наприклад, якщо у вас є правило*.log, але ви хочете відстежуватиimportant.log, додайте рядок!important.log.**— відповідає будь-якій кількості вкладених каталогів. Наприклад,**/tempігнорує каталогиtempна будь‑якому рівні вкладеності.
Приклад файлу .gitignore
# Скомпільований код
/bin/
/obj/
# Тимчасові файли
*.tmp
*.swp
# Журнали
*.log
# Каталоги, які створює IDE
.idea/
*.user
*.suo
# Віртуальні середовища та залежності
/venv/
/node_modules/
Готові шаблони
Не потрібно писати ці файли з нуля. Існують готові, перевірені спільнотою шаблони:
- Колекція
.gitignoreвід GitHub для різних мов і фреймворків: https://github.com/github/gitignore. - gitignore.io — зручний вебсервіс, який генерує файл
.gitignoreдля ваших технологій.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ