Віддалений репозиторій
В Git віддалений репозиторій (або просто remote) — це версія твого проєкту, що зберігається десь онлайн: на GitHub, GitLab чи Bitbucket. Це щось на кшталт спільної домівки для коду. Саме сюди всі учасники команди відправляють оновлення, звідси забирають свіжу версію й так тримають проєкт синхронізованим.
Коли хтось каже add a remote чи push to the remote, ідеться про відправлення локальної роботи до тієї спільної онлайн-копії, а не про клацання пультом від телевізора (він теж remote).
Віддалений репозиторій важливий із кількох великих причин:
-
Він дає змогу працювати разом. У кожного є власна локальна копія: можна вносити зміни й відправляти їх у спільний віддалений репозиторій, а інші учасники — забирати ці зміни собі. Саме так розробники з різних міст і навіть часових поясів тримаються однієї сторінки й не наступають одне одному на п'яти.
-
Він працює як страховка. Якщо ноутбук помре, код — ні. Проєкт живе на віддаленому сервері, тож усе можна відновити, просто клонувавши репозиторій ще раз. Фактично це резервна копія твоєї роботи в іншому місці.
-
Він робить код доступним будь-де. Можна підтягнути проєкт на іншому комп'ютері, підправити щось у кав'ярні або переглянути код із телефона. Є інтернет — код подорожує з тобою.
-
Він живить автоматизацію. Більшість сучасних команд під'єднують віддалені репозиторії до систем, які автоматично тестують, збирають і розгортають код після кожного пушу. Так помилки ловляться раніше, а програма завжди готова до релізу.
Цікаво, як локальний репозиторій стежить за тим, що відбувається на віддаленому? Git оновлює віддалено-відстежувані гілки (наприклад, origin/main) щоразу, коли ти стягуєш або забираєш зміни, тож можна порівняти історію, перш ніж щось зливати.
Приклади
Додати віддалений репозиторій за вказаною URL-адресою до списку віддалених репозиторіїв і призначити йому псевдонім origin:
git remote add origin https://github.com/user/repo.gitЗабрати зміни з віддаленої гілки, пов'язаної з гілкою main у віддаленому репозиторії origin, і, якщо зміни є, злити їх у гілку main:
git pull origin mainВідправити зміни до віддаленої гілки, пов'язаної з гілкою main у віддаленому репозиторії origin:
git push origin mainКлонувати віддалений репозиторій за вказаною URL-адресою на свій комп'ютер. Можна додати ще один аргумент, щоб указати назву директорії, куди буде клоновано репозиторій:
git clone https://github.com/user/repo.gitПорівняти зміни між локальною та віддаленою гілками:
git diff main origin/mainУ цих прикладах origin — загальноприйнята назва віддаленого репозиторію за замовчуванням, але можна використати будь-яку іншу. Гілка main часто є основною гілкою репозиторію, хоча це залежить від домовленостей у проєкті.
.gitignoregit checkoutgit configgit taggit worktree