1. Початок роботи: клонування проєкту
Почнемо з того, на чому зупинилися в минулій лекції. У вас є репозиторій, створений на GitHub, і тепер вам потрібно отримати його локальну копію на свій компʼютер, щоб розпочати роботу. Цей процес називається клонуванням.
Крок 1. Запустіть вашу IDE. Якщо у вас уже відкрито якийсь проєкт, закрийте його через File | Close Project. На стартовому екрані (Welcome Screen) виберіть 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: "Перший коміт"
commit id: "Додати автентифікацію користувача"
commit id: "Виправити помилку кнопки входу"
commit id: "Рефакторинг підʼєднання до бази даних"
Крок 1. Внесіть зміни.
Якщо ви клонували щойно створений репозиторій, він міститиме лише один файл — README.md і приховані папки IDE.
Відкрийте файл README.md і додайте в нього опис вашого проєкту. Щойно ви почнете редагувати файл, IDE підсвітить його назву синім кольором на панелі проєкту. Це означає, що файл змінили, але зміни ще не збережено в Git. IDE додасть зелену лінію там, де ви внесли зміни.
Крок 2. Відкрийте вікно Commit.
Ліворуч у IDE є вкладка Commit. Відкривши її, ви побачите всі зміни, готові до збереження. Це ваша область індексування (Staging Area).
Давайте розберемо, що ми бачимо:
- Changes: тут містяться файли, які Git уже відстежує, але які були змінені. У нашому випадку це
README.md, до якого ми додали опис проєкту. - Unversioned Files: це нові файли, які Git бачить у папці проєкту, але ще не відстежує.
Важливо
Перед натисканням кнопки Commit завжди перевіряйте, навпроти яких файлів стоять позначки. Особливо це важливо для першого коміту.
Якщо ви бачите в списку Unversioned Files папку .idea/ (і особливо файл workspace.xml, який змінюється при кожному кліку мишею), а також папки bin/, vendor/ чи скомпільовані бінарні файли, наприклад myapp.exe, — зупиніться! Ці службові файли не повинні потрапляти до загальної історії. Добра новина: якщо ви створили репозиторій із шаблоном .gitignore (Go), 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) виглядає як стрілка, спрямована вгору й праворуч. Натисніть її.
Крок 2. Перевірте та підтвердіть.
Відкриється вікно, де ви побачите всі коміти, готові до надсилання. Це ваш останній шанс переконатися, що ви надсилаєте саме те, що потрібно. Натисніть Push.
Якщо все пройшло успішно, ви побачите спливаюче сповіщення IDE: Pushed commits to origin/main. Create pull request.
Крок 3. Перевірте результат на GitHub.
Після успішного надсилання відкрийте сторінку вашого репозиторію на GitHub у браузері. Ви побачите, що ваші зміни та файли вже там.
4. Панель керування Git
У вашій IDE є окрема панель інструментів Git, а також швидкі дії на верхній панелі Main Toolbar. Це ваш центр керування версіями проєкту. Давайте познайомимося з ключовими кнопками.
Commit(галочка): відкриває панель для збереження змін.Push(стрілочка вгору/вправо): відкриває вікно для надсилання ваших комітів на GitHub.Branches: відкриває віджет для керування гілками (у лівому верхньому куті).Show Git Log: показує всю історію комітів вашого проєкту на вкладці Git. Ваша особиста машина часу.
Починайте ранок з Update Project
Кнопка Update Project виконує одну з найважливіших функцій — завантажує свіжі зміни, зроблені іншими учасниками команди, із сервера GitHub на ваш компʼютер (виконує git pull).
Зробіть це звичкою: щоранку, перш ніж написати бодай один рядок нового коду, натискайте цю кнопку. Якщо ви почнете працювати зі старим кодом, а ваші колеги вже внесли зміни в ті самі файли, до обіду ви отримаєте непростий конфлікт злиття (Merge Conflict).
5. Використання .gitignore-файлів
Якщо у вашому проєкті зʼявляються службові файли або результати компіляції, а ви не хочете, щоб вони випадково потрапили до репозиторію, їх потрібно додати до винятків. Для цього в корені проєкту створюють спеціальний файл із назвою .gitignore.
Специфіка Go: що ми ігноруємо
В екосистемі Go компіляція та тестування виконуються за допомогою вбудованих інструментів (go build, go test). Процес збірки й запуску тестів створює бінарні файли та кеші, які категорично не слід відправляти в Git:
bin/абоout/— папки, куди ви можете складати готові скомпільовані програми. Вони унікальні для вашої операційної системи та архітектури процесора.*.exe, файли без розширень (у Linux/macOS) — самі виконувані бінарні файли. Зберігати їх у Git — поганий тон: вони займають місце й не приносять користі іншим розробникам, оскільки скомпільовані під вашу конкретну ОС.*.test,*.out— бінарні файли, створені під час тестів, а також файли профілювання й покриття коду (наприклад,coverage.out).go.workтаgo.work.sum— файли локального робочого простору. На відміну відgo.modтаgo.sum, які обовʼязково мають бути в репозиторії, файлиgo.workіgo.work.sumпризначені лише для вашої особистої локальної зручності.vendor/— каталог із локальними копіями залежностей. У сучасних проєктах на Go Modules його часто додають до ігнору, а завантаження пакетів довіряють утилітіgo mod..idea/— локальні налаштування вікна IDE (які файли відкрито, розмір шрифту). Вашим колегам ваші особисті налаштування інтерфейсу не потрібні, а файлworkspace.xmlвзагалі постійно змінюється.
Як додати файл до ігнору вручну:
Крок 1. Припустімо, ви створили тимчасовий файл notes.txt з паролями до тестової бази. Клацніть по ньому правою кнопкою миші у вікні проєкту.
Крок 2. Перейдіть до меню Git -> Add to .gitignore -> Add to .gitignore. Ця опція додає вибраний файл до файлу .gitignore в корені вашого проєкту.
Якщо у вас ще немає файлу .gitignore, IDE запропонує його створити. Погодьтеся.
Крок 3. Ваша IDE автоматично додасть імʼя файлу в .gitignore.
Після цього проігноровані файли відображатимуться в дереві проєкту сірим або оливковим кольором. Під час спроби зробити коміт Git просто «не побачить» ці файли. Головне — не забудьте закомітити сам файл .gitignore, щоб усі учасники вашої команди отримали ці правила ігнорування.
А що, якщо я вже закомітив?
.gitignore ігнорує тільки нові, ще не відстежувані файли. Якщо ви помилково вже закомітили папку bin/, вона є в історії, і Git продовжить стежити за нею, навіть якщо ви додасте її в .gitignore. У таких ситуаціях доведеться очистити кеш, наприклад командою git rm -r --cached bin/ у терміналі, але краще просто не допускати потрапляння сміття до першого коміту.
Правила для .gitignore
У файлі .gitignore вказуються шаблони імен файлів і папок, які Git повинен ігнорувати. Порожні рядки ігноруються. Щоб додати коментар, почніть рядок із символу #.
*— замінює будь-яку кількість будь-яких символів. Наприклад,*.logігнорує всі файли з розширенням.log./— наприкінці шаблону означає каталог. Наприклад,build/ігнорує весь вміст папкиbuild.!— на початку рядка інвертує правило. Наприклад, якщо у вас є правило*.log, але ви хочете відстежуватиimportant.log, додайте рядок!important.log.**— відповідає будь-якій кількості вкладених папок.
Приклад файлу .gitignore для Go
# Скомпільовані бінарні файли
*.exe
*.exe~
*.dll
*.so
*.dylib
bin/
# Файли тестування та профілювання
*.test
*.out
# Файли локального робочого простору Go
go.work
go.work.sum
# Каталог з локальними копіями залежностей (опціонально)
vendor/
# Файли й налаштування локальної IDE
.idea/
# Файли операційної системи
.DS_Store
Thumbs.db
Готові шаблони
Вам не потрібно писати ці файли з нуля. Існують готові, перевірені спільнотою шаблони:
- Колекція
.gitignoreвід GitHub для різних мов і фреймворків: https://github.com/github/gitignore. - gitignore.io — зручний вебсервіс, який генерує файл
.gitignoreпід ваші технології (просто введіть Go, GoLand, IntelliJ).
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ