GitHub та віддалені репозиторії
GitHub та віддалені репозиторії — два ноутбуки з'єднані світловим мостом для обміну файлами
У минулому уроці ми навчилися працювати з Git локально — робити коміти, створювати гілки та зливати їх. Але поки що весь код живе тільки на твоєму комп'ютері. Що буде, якщо ноутбук зламається? Як показати код другу? Як працювати в команді?
Відповідь — віддалені репозиторії та GitHub.
Що таке репозиторій?
Слово repository (скорочено repo) перекладається як "сховище". І це точно описує суть: репозиторій — це сховище для коду та всієї його історії.
У минулому уроці ми створювали локальний репозиторій командою git init. Він живе на твоєму комп'ютері — в прихованій папці .git/ всередині проєкту. Тут зберігаються всі коміти, гілки, історія змін.
Віддалений (remote) репозиторій — це та сама інформація, але на сервері в інтернеті. Локальний і віддалений — це дві копії одного проєкту, які синхронізуються між собою.
| Локальний репозиторій | Віддалений репозиторій | |
|---|---|---|
| Де живе | На твоєму комп'ютері | На сервері (GitHub, GitLab...) |
| Доступ | Тільки ти | Хто завгодно (або обрані люди) |
| Навіщо | Працювати з кодом | Резервна копія + командна робота |
| Створюється | git init | Через вебсайт (GitHub, GitLab...) |
Git ≠ GitHub
Це дуже поширена плутанина серед початківців, тому давай розставимо крапки:
| Git | GitHub | |
|---|---|---|
| Що це | Програма на твоєму комп'ютері | Вебсайт (хмарний сервіс) |
| Де працює | Локально | В інтернеті |
| Навіщо | Відстежує зміни у файлах | Зберігає копію репозиторію онлайн |
| Аналогія | Фотоапарат (робить знімки) | Фотоальбом у хмарі (зберігає їх) |
Git — це інструмент. GitHub — це платформа, де люди зберігають та діляться Git-репозиторіями. Можна працювати з Git без GitHub, але з ним значно зручніше.
Альтернативи GitHub
GitHub — не єдиний сервіс для зберігання репозиторіїв:
| Платформа | Особливості |
|---|---|
| GitHub | Найпопулярніший: 180M+ розробників, 630M+ репозиторіїв. Належить Microsoft |
| GitLab | Має українські корені — засновник Дмитро Запорожець з Харкова створив GitLab у 2011 році. Сьогодні це компанія з оцінкою в мільярди доларів. Популярний серед компаній для приватних проєктів |
| Bitbucket | Від Atlassian (творці Jira, Trello). Тісна інтеграція з іншими їхніми продуктами |
| Azure DevOps | Від Microsoft. Використовується переважно в корпоративному середовищі |
Усі ці платформи працюють з одним і тим самим Git. Якщо ти вмієш користуватися Git — ти можеш працювати з будь-якою з них. Команди push, pull, clone — однакові скрізь. Ми в курсі використовуємо GitHub, бо він найпопулярніший і безкоштовний для особистих проєктів.
Створення акаунту на GitHub
- Перейди на github.com та натисни Sign up
- Введи email, придумай пароль та username
- Підтверди email
Username — це твій нікнейм на GitHub. Він буде в URL всіх твоїх проєктів: github.com/твій-username/назва-проєкту. Обирай щось професійне — це твоє портфоліо як розробника. Багато компаній дивляться на GitHub-профіль при наймі.
Push, Pull, Clone — як синхронізуватися?
Уяви, що локальний репозиторій — це гра на твоєму комп'ютері, а GitHub — хмарне збереження (cloud save). Є три основні операції:
- Push — зберегти гру в хмару (відправити свої коміти на GitHub)
- Pull — завантажити збереження з хмари (отримати нові коміти з GitHub)
- Clone — вперше завантажити гру на новий пристрій (скопіювати весь проєкт з GitHub)
Тобто ти працюєш локально, робиш коміти — а потім push відправляє їх на сервер. Якщо хтось інший (або ти з іншого комп'ютера) додав зміни на GitHub — pull завантажить їх до тебе.
Авторизація: як GitHub знає, що це ти?
Коли ти вперше спробуєш git push, GitHub запитає: "А ти хто?". Є два способи "представитися":
Спосіб 1: HTTPS + Personal Access Token (простіший)
- На GitHub: Settings → Developer Settings → Personal Access Tokens → Tokens (classic)
- Натисни Generate new token (classic)
- Дай йому назву (наприклад, "мій ноутбук"), обери scope repo
- Скопіюй токен (він показується тільки один раз!)
- При першому
git pushвикористай токен замість пароля
Токен — це як пароль. Ніколи не публікуй його, не додавай у код і не відправляй нікому. Якщо випадково засвітив — видали його на GitHub і створи новий.
Спосіб 2: SSH-ключ (зручніший у довгостроковій перспективі)
SSH-ключ — це як електронний підпис. Налаштовуєш один раз — і більше не вводиш паролі:
# 1. Генеруємо SSH-ключ
ssh-keygen -t ed25519 -C "tvij@email.com"
# Просто натискай Enter на всі питання
# 2. Копіюємо публічний ключ
cat ~/.ssh/id_ed25519.pub
# Скопіюй весь рядок що з'явився
- На GitHub: Settings → SSH and GPG keys → New SSH key
- Вставляєш скопійований ключ і зберігаєш
Після цього клонуй репозиторії через SSH URL (починається з git@github.com:...).
Спосіб 1: Створити на GitHub → Clone на комп'ютер
Найпростіший спосіб почати новий проєкт:
На GitHub:
- Натисни "+" → "New repository"
- Введи назву (наприклад,
my-first-site) - Постав галочку "Add a README file"
- Натисни "Create repository"
У терміналі:
git clone — клонування репозиторію з GitHub
# Клонуємо репозиторій (створює папку з проєктом)
git clone https://github.com/твій-username/my-first-site.git
# Заходимо в папку
cd my-first-site
# Перевіряємо — remote вже підключений!
git remote -v
Побачиш:
origin https://github.com/твій-username/my-first-site.git (fetch)
origin https://github.com/твій-username/my-first-site.git (push)
origin — це стандартна назва для віддаленого репозиторію. Як "головний сервер".
Спосіб 2: Підключити існуючий проєкт
Якщо ти вже маєш проєкт з Git на комп'ютері (наприклад, pizza-site з минулого уроку) — його можна підключити до GitHub:
На GitHub:
- Створи порожній репозиторій (без README, без .gitignore — бо вони вже є локально)
У терміналі:
# Підключаємо remote
git remote add origin https://github.com/твій-username/pizza-site.git
# Перший push (-u запам'ятовує зв'язок між гілками)
git push -u origin main
Прапорець -u потрібен тільки при першому push. Він каже Git: "запам'ятай, що main на моєму комп'ютері — це origin/main на GitHub". Після цього можна просто писати git push.
Щоденний робочий процес
Після того як remote підключений, робочий процес стає простим:
Щоденний робочий процес: pull, add, commit, push
# 1. Отримуємо останні зміни з GitHub (важливо, якщо працюєш в команді)
git pull
# 2. Працюємо над кодом...
# 3. Зберігаємо зміни
git add .
git commit -m "Додано стилі для навігації"
# 4. Відправляємо на GitHub
git push
Запам'ятай цю звичку: pull → робота → add → commit → push. Це як ранковий ритуал розробника.
Що таке Pull Request?
Pull Request (PR) — це запит на додавання твоїх змін у основну гілку. Замість того щоб зливати гілки на своєму комп'ютері (як ми робили з git merge), ти робиш це на GitHub, де інші можуть переглянути твій код.
Як це виглядає на практиці:
# 1. Створюємо гілку і працюємо
git checkout -b feature/footer
# ... пишемо код ...
git add .
git commit -m "Додано футер з контактами та посиланнями"
# 2. Пушимо гілку на GitHub
git push -u origin feature/footer
Далі — на GitHub:
- Побачиш кнопку "Compare & pull request" — натискаєш
- Пишеш опис: що зробив, навіщо, як перевірити
- Колега (або вчитель) переглядає код, залишає коментарі
- Після затвердження — натискаєш "Merge pull request"
Pull Request — це не просто технічна штука. Це культура розробки: навіть найдосвідченіші програмісти в Google та Meta не додають код без code review. Перевірка коду іншою людиною допомагає знаходити помилки та ділитися знаннями. Тобто ніхто не працює наодинці — і це добре!
Типові помилки новачків
| Помилка | Що станеться | Як уникнути |
|---|---|---|
git push без git pull | Git відхилить push, якщо на GitHub є нові зміни | Завжди починай з git pull |
Забув git add перед git commit | Коміт буде порожній | Перевіряй git status перед кожним комітом |
Закомітив .env з паролями | Паролі потраплять в публічний доступ | Додай .gitignore до першого коміту |
Push на main напряму | Ніхто не перевірить твій код | Працюй через гілки + Pull Requests |
Практика: повний цикл з GitHub
Давай пройдемо весь процес від створення до push:
# 1. Створюємо проєкт
mkdir my-portfolio && cd my-portfolio
git init
# 2. Створюємо файли
echo "# Моє портфоліо" > README.md
touch index.html style.css
echo "node_modules/" > .gitignore
# 3. Перший коміт
git add .
git commit -m "Початковий коміт — каркас портфоліо"
Тепер на GitHub створи порожній репозиторій my-portfolio, і:
# 4. Підключаємо remote і пушимо
git remote add origin https://github.com/твій-username/my-portfolio.git
git push -u origin main
Відкрий github.com/твій-username/my-portfolio у браузері — побачиш свої файли. Твій перший проєкт на GitHub!
Шпаргалка нових команд
| Команда | Що робить |
|---|---|
git clone <url> | Скопіювати репозиторій з GitHub |
git remote add origin <url> | Підключити remote |
git remote -v | Показати підключені remote |
git push | Відправити коміти на GitHub |
git push -u origin main | Перший push з прив'язкою |
git pull | Отримати зміни з GitHub |
Підсумок
У цьому уроці ми дізналися:
- Git і GitHub — різні речі: інструмент на комп'ютері vs платформа в інтернеті
- Remote — віддалена копія репозиторію на GitHub
- Clone — скопіювати проєкт з GitHub на свій комп'ютер
- Push/Pull — відправка та отримання змін
- Авторизація — через HTTPS-токен або SSH-ключ
- Pull Request — культурний спосіб додавати код через перевірку
Що далі?
У наступному уроці ми налаштуємо Node.js, npm та VS Code — інструменти, без яких не обходиться жоден сучасний веб-розробник.
Знаменитості GitHub:
- Linux — операційна система, яка працює на Android-телефонах, серверах та навіть Міжнародній космічній станції
- React (242k+ зірок) — бібліотека від Meta, на якій побудовані Instagram, Netflix та Airbnb
- freeCodeCamp (437k+ зірок) — безкоштовна платформа для вивчення програмування, яка допомогла тисячам людей отримати першу роботу
GitHub Pages — безкоштовний хостинг прямо з репозиторію! Можеш викласти свій HTML-сайт онлайн за 2 хвилини: Settings → Pages → вибери гілку main. Адреса буде твій-username.github.io/назва-репо.
Корисні посилання:
- GitHub: Hello World Tutorial — офіційний вступний урок
- GitHub Skills — інтерактивний курс (менше 1 години)
- git - the simple guide — мінімалістичний візуальний гайд