1. Початок роботи: клонування проєкту
Почнімо з того, на чому зупинилися в минулій лекції. У вас є репозиторій, створений на GitHub, і тепер вам потрібно отримати його локальну копію на свій комп’ютер, щоб розпочати роботу. Цей процес називається клонуванням.
Крок 1. Запустіть IDE. Якщо у вас відкрито якийсь проєкт, закрийте його через File -> Close Project. У стартовому вікні виберіть Clone Repository або Get from VCS.
Крок 2. У відкритому вікні вставте URL вашого репозиторію. Такий спосіб корисний, якщо ви клонуєте чийсь репозиторій. URL можна скопіювати зі сторінки репозиторію на GitHub.
Якщо ви клонуєте свій репозиторій (наш варіант), найпростіше увійти до свого облікового запису GitHub безпосередньо з IDE. Для цього виберіть опцію Log in to GitHub. Ваша IDE відкриє браузер для авторизації.
На відкритій сторінці сміливо натискайте зелену кнопку Authorize JetBrains. Після цього ви зможете обирати свої репозиторії прямо зі списку в IDE. Виберіть потрібний проєкт і натисніть Clone.
Крок 3. Ваша IDE запитає, чи довіряєте ви цьому проєкту. Оскільки це ваш власний репозиторій, натисніть Trust Project.
Крок 4. Налаштування антивірусу (для користувачів Windows)
Антивірус Windows може попередити, що IDE намагається виконати невідомі для нього дії. Оскільки ми збираємося створювати й запускати програми, потрібно дозволити IDE працювати без обмежень. Натисніть кнопку «Automatically», щоб 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. Після створення файлу натисніть Cancel, якщо 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під ваші технології.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ