Ключові поняття

Віддалений репозиторій

В 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 часто є основною гілкою репозиторію, хоча це залежить від домовленостей у проєкті.