JavaRush /Курси /Kotlin SELF /Щоденний цикл розробника: Commit, Push і .gitignore

Щоденний цикл розробника: Commit, Push і .gitignore

Kotlin SELF
Рівень 18 , Лекція 1
Відкрита

1. Початок роботи: клонування проєкту

Почнімо з того, на чому ми зупинилися в попередній лекції. У вас уже є репозиторій, створений на GitHub. Тепер потрібно отримати його локальну копію на своєму компʼютері, щоб почати роботу. Цей процес називається клонуванням.

Крок 1. Запустіть IDE. Якщо у вас відкритий якийсь проєкт, закрийте його через File | Close Project. У початковому вікні (Welcome Screen) виберіть Clone Repository (або Get from VCS).

Крок 2. У вікні, що відкрилося, вставте URL вашого репозиторію. Такий спосіб зручний, коли ви клонуєте чужий репозиторій. URL можна скопіювати зі сторінки репозиторію на GitHub.

Введення URL для клонування

Якщо ви клонуєте свій репозиторій (наш випадок), найпростіше увійти у свій обліковий запис GitHub прямо з IDE. Для цього виберіть опцію Log in to GitHub. IDE відкриє браузер для авторизації.

Вікно авторизації JetBrains IDE на GitHub

На сторінці, що відкриється, натисніть зелену кнопку 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 (і приховані папки IDE).

Відкрийте файл README.md і додайте до нього опис вашого проєкту. Щойно ви почнете редагувати файл, IDE підсвітить його імʼя синім кольором на панелі проєкту. Це означає, що файл змінено, але ці зміни ще не збережені в Git. IDE додасть зелену лінію там, де ви внесли зміни.

Підсвічування зміненого файла

Крок 2. Відкрийте вікно Commit.

Ліворуч в IDE є вкладка Commit. Відкривши її, ви побачите всі зміни, готові до збереження. Це ваша область індексації (Staging Area).

Вікно Commit в IntelliJ IDEA

Розберімося, що тут показано:

  • Changes: тут розташовані файли, які Git уже відстежує, але які ви змінили. У нашому випадку це README.md, до якого ми додали план проєкту.
  • Unversioned Files: це нові файли, які Git бачить у папці проєкту, але ще не відстежує.

Важливо

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

Якщо ви бачите в списку Unversioned Files папку .idea/ (а надто файл workspace.xml, який змінюється після майже кожного клацання мишею) або папку build/, — зупиніться! Ці службові файли не мають потрапляти у спільну історію. Гарна новина: якщо ви створили репозиторій із шаблоном .gitignore, Git сам приховає ці папки. Якщо ж вони видимі, додайте їх до ігнорування якнайшвидше (про це — наприкінці лекції).

Поки що ваше завдання для першого коміту — позначити основні файли проєкту й написати зрозуміле повідомлення в полі Commit Message.

Крок 3. Зробіть коміт.

Натисніть синю кнопку Commit. Готово! Ви зберегли «знімок» вашого проєкту в локальному репозиторії. Імʼя файла знову стане звичайного кольору.

Успішний коміт

3. Надсилання змін на GitHub: Push

Поки що ваші коміти зберігаються лише на вашому компʼютері. Щоб поділитися ними з командою або просто мати копію в надійному місці, потрібно надіслати їх до віддаленого репозиторію на GitHub.

        sequenceDiagram
        participant Локальний репозиторій (Ваш компʼютер)
        participant Віддалений репозиторій (GitHub)

        note over Локальний репозиторій (Ваш компʼютер): Ви зробили один або кілька комітів.
Вони існують лише тут. Локальний репозиторій (Ваш компʼютер) ->> Віддалений репозиторій (GitHub): git push (надіслати коміти) note over Віддалений репозиторій (GitHub): Ваші коміти скопійовано
і надійно збережено на сервері.
Ваші локальні коміти надсилаються на віддалений сервер, синхронізуючи історію проєкту.

Крок 1. Натисніть кнопку Push.

В інтерфейсі кнопка Push розташована на головній верхній панелі інструментів (Main Toolbar). Вона виглядає як стрілка, спрямована вгору й праворуч. Натисніть її.

Кнопка Push на Main Toolbar

Крок 2. Перевірте й підтвердьте.

Відкриється вікно, у якому ви побачите всі коміти, готові до надсилання. Це ваш останній шанс переконатися, що ви надсилаєте саме те, що потрібно. Натисніть Push.

Вікно підтвердження Push

Якщо все минуло успішно, ви побачите спливне сповіщення IDE: Pushed commits to origin/main. Create pull request.

Крок 3. Перевірте результат на GitHub.

Після успішного надсилання відкрийте сторінку вашого репозиторію на GitHub у браузері. Ви побачите, що ваші зміни й файли зʼявилися там.

4. Панель керування Git

У вашій IDE є окрема панель інструментів Git, а також швидкі дії на верхній Main Toolbar. Це ваш центр керування версіями. Ознайоммося з основними кнопками.

Елементи керування Git в IDE
  • Commit (позначка): відкриває панель для збереження змін.
  • Push (стрілка вгору/праворуч): відкриває вікно для надсилання ваших комітів на GitHub.
  • Branches: відкриває віджет для керування гілками (у лівому верхньому куті).
  • Show Git Log: показує всю історію комітів вашого проєкту на вкладці Git. Ваша особиста машина часу.

Ранок починається з Update Project

Кнопка Update Project виконує одну з найважливіших дій — завантажує свіжі зміни від інших учасників команди із сервера GitHub на ваш компʼютер (виконує git pull).

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

5. Використання .gitignore-файлів

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

Специфіка Kotlin і чому ми ігноруємо папки

У світі Kotlin стандартом де-факто є система збирання Gradle, а основним середовищем розробки — IntelliJ IDEA. Вони генерують багато службових файлів, які категорично не можна надсилати в Git:

  • build/ — тут лежать результати компіляції вашого коду (файли .class, архіви .jar). Вони важать десятки й сотні мегабайт, а система збирання щоразу створює їх заново на компʼютері кожного розробника. Зберігати їх у Git означає швидко вичерпати місце на сервері.
  • .gradle/ — локальний кеш системи збирання.
  • .idea/ — локальні налаштування IDE (які файли у вас відкриті, розмір шрифту, шляхи до локальних SDK). Вашим колегам не потрібні ваші персональні налаштування інтерфейсу, а файл workspace.xml узагалі змінюється щосекунди.

Як додати файл до ігнорування вручну:

Крок 1. Припустімо, ви створили тимчасовий файл notes.txt із паролями до тестової бази. Клацніть по ньому правою кнопкою миші у вікні проєкту.

Створення тимчасового файла

Крок 2. Перейдіть у меню Git -> Add to .gitignore -> Add to .gitignore. Ця опція додає вибраний файл до .gitignore у корені вашого проєкту.

Додавання до .gitignore через меню

Якщо у вас іще немає файла .gitignore, IDE запропонує його створити. Погоджуйтеся.

Крок 3. IDE автоматично додасть назву файла до .gitignore.

Файл додано до .gitignore

Після цього проігноровані файли відображатимуться в дереві проєкту сірим або оливковим кольором. Під час спроби зробити коміт Git просто «не побачить» ці файли. Головне — не забудьте закомітити сам файл .gitignore, щоб правила ігнорування завантажили всі учасники вашої команди.

А що, як я вже закомітив?

.gitignore ігнорує лише нові, ще не відстежувані файли. Якщо ви помилково вже закомітили папку build/, вона вже є в історії, і Git продовжить стежити за нею, навіть якщо ви додасте її до .gitignore. У такій ситуації потрібно буде очистити кеш (наприклад, командою git rm -r --cached build/ у терміналі). Але найкращий варіант — просто не допустити потрапляння «сміття» в перший коміт.

Правила для .gitignore

У файлі .gitignore вказують шаблони імен файлів і папок, які Git має ігнорувати. Порожні рядки ігноруються. Щоб додати коментар, почніть рядок із символу #.

  • * — замінює будь-яку кількість будь-яких символів. Наприклад, *.log ігнорує всі файли з розширенням .log.
  • / — у кінці шаблону означає каталог. Наприклад, build/ ігнорує весь вміст папки build.
  • ! — на початку рядка інвертує правило. Наприклад, якщо у вас є правило *.log, але ви хочете відстежувати important.log, додайте рядок !important.log.
  • ** — відповідає будь-якій кількості вкладених папок.

Приклад файла .gitignore для Kotlin і Gradle


# Результати компіляції та збирання Gradle
build/
.gradle/
out/

# Файли й налаштування локальної IDE
.idea/
*.iml
*.iws

# Файли операційної системи
.DS_Store
Thumbs.db

# Логи
*.log

Готові шаблони

Вам не потрібно писати ці файли з нуля. Є готові, перевірені спільнотою шаблони:

  1. Колекція .gitignore від GitHub для різних мов і фреймворків: https://github.com/github/gitignore.
  2. gitignore.io — зручний вебсервіс, який генерує файл .gitignore під ваші технології (просто введіть Kotlin, Gradle, IntelliJ).
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ