Git і GitHub: хто за що відповідає
Модуль 1Урок 4 з 53Безкоштовний модуль
Git — програма в терміналі (або бібліотека в IDE). Вона ініціалізує .git, робить commit, merge, branch. GitHub — хостинг і соціальний шар навколо Git: веб-інтерфейс, issue, pull request, CI, права доступу. Можна використовувати Git без GitHub (GitLab, Bitbucket, власний сервер, або взагалі без remote). GitHub без локального Git — лише перегляд чужих проєктів через браузер.
Приклад
Аналогія: Git — двигун і коробка передач автомобіля; GitHub — парковка, сервіс і клуб любителів тієї ж марки. Машина їде без парковки; парковка без машини не перевезе вас додому. Багато команд домовляються, що «офіційна» парковка — github.com/org/repo, але технічно ваш garage на ноуті рівний за можливостями.
Upstream і downstream
Upstream (джерело вгору за течією) — репозиторій, звідки ви берете зміни (часто «головний» org/repo). Downstream (приймач униз за течією) — той, куди зміни текуть далі: ваш fork, клон команди, внутрішнє дзеркало. Як у річці: downstream отримує те, що «пливе» зверху; щоб віддати зміни в upstream, ви push або просите через pull request. Терміни відносні: для вашого fork upstream — оригінал; для оригіналу ваш fork — downstream.
Pull request (PR) — прохання: «візьміть commit з мого репозиторію в ваш». У чистому Git це merge між двома рівноправними базами; GitHub додає review, checks і кнопку Merge. Коли GitHub «лежить», локальний Git працює; страждає спільна координація, не ваша історія на диску. Звідси жарти про «decentralized Git, centralized GitHub».
Увага
Цей курс фокусується на Git у терміналі, не на кнопках GitHub. GUI різняться і ховають деталі; на співбесіді часто питають саме команди. Освоєні status, add, commit, log — потім легко перенести на будь-який інтерфейс або хостинг.
Центр за домовленістю
У SVN усі говорили з одним сервером. У Git кожен має повну копію і обмінюється з тими remote, кому довіряє. Центральний репозиторій на GitHub — зручна домовленість команди, не вимога протоколу. Open source живе на fork і pull request; enterprise — на внутрішньому remote з тими ж git push і git pull.
git remote -v
git remote add upstream https://github.com/original/project.git
git fetch upstreamЩо запамʼятати
Git — інструмент версій; GitHub — сервіс і workflow навколо нього. Upstream/downstream описують напрямок змін. PR — соціальний merge між рівними репозиторіями. Центральний хостинг — зручна домовленість, не вимога протоколу.
Перевірка
4 питанняКілька питань за матеріалом уроку. Спроб — скільки завгодно.