Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке віддалений репозиторій у Git?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Віддалений репозиторій (remote repository)** у Git - це копія Git-репозиторію, яка знаходиться не на вашому комп'ютері, а в іншому місці: на сервері, у корпоративній інфраструктурі або на хостингу на кшталт GitHub/GitLab/Bitbucket. **Ключове:** він потрібен для обміну змінами та спільної роботи, а також слугує центральним сховищем і резервною копією історії проекту.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняВіддалений репозиторій (remote repository) у Git - це **копія Git-репозиторію, яка знаходиться не на вашому комп'ютері, а в іншому місці**: на сервері в мережі, у корпоративній інфраструктурі або на хостингу на кшталт GitHub/GitLab/Bitbucket. Він потрібен не «для роботи Git» як такого (Git чудово працює локально), а **для обміну змінами та спільної роботи**, а також як **центральне сховище/резервна копія**. --- ## Що саме зберігається у віддаленому репозиторії Віддалений репозиторій зберігає: - **коміти** (історію змін), - **гілки** (посилання на коміти), - **теги**, - службові дані Git (об'єкти, посилання). Важливо: віддалений репозиторій - це не «папка з файлами», а **Git-база даних об'єктів**, як і локальний репозиторій. Найчастіше віддалений репозиторій на сервері зроблений у вигляді **bare-репозиторію** (без робочої директорії з розпакованими файлами). Це нормально: на сервері зазвичай не редагують файли напряму, а лише приймають/віддають коміти. --- ## Чим відрізняється локальний репозиторій від віддаленого ### Локальний репозиторій (у вас на ПК) - містить вашу локальну історію та гілки, - має робочу директорію (файли проекту), - ви робите коміти локально, навіть без інтернету. ### Віддалений репозиторій (на сервері) - слугує точкою синхронізації між учасниками, - дозволяє публікувати зміни і забирати зміни інших, - часто використовується як «істина» проекту. Git за своєю природою **розподілений**: у кожного розробника повноцінний репозиторій. Віддалений - це просто зручна спільна точка обміну. --- ## Навіщо потрібен віддалений репозиторій 1. **Спільна робота** - один розробник відправляє зміни, інший забирає і продовжує роботу. 2. **Обмін і синхронізація** - публікація своїх гілок/комітів для команди. 3. **Резервне зберігання** - якщо у вас зламався ноутбук, історія залишається на сервері. 4. **Процеси розробки** - Pull/Merge Requests, code review, CI/CD, перевірки, релізи - усе це зазвичай зав'язано на віддалений репозиторій. 5. **Розподіл відповідальності** - локально ви можете експериментувати, а у віддалений відправляєте тільки готове. --- ## Як Git «бачить» віддалений репозиторій: remotes У Git віддалені репозиторії налаштовуються як **remote** - це запис вигляду: - ім'я (часто `origin`) - URL (адреса, куди підключатися) Приклад: коли ви робите `git clone`, Git автоматично створює remote з іменем `origin`, що вказує на джерело клонування. ### Що таке `origin` `origin` - це **просто стандартне ім'я**, а не «особливий сервер». Можна назвати remote як завгодно (`upstream`, `company`, `backup`). ## Як підключаються до віддаленого репозиторію (протоколи) Зазвичай використовуються: - **HTTPS** (зручно, токени/паролі) - **SSH** (зручно для розробників: ключі, менше мороки з токенами) - рідше: `git://` та інші варіанти Вибір протоколу впливає на спосіб автентифікації, але суть віддаленого репозиторію не змінюється. --- ## Типовий робочий цикл із віддаленим репозиторієм 1. Забрати актуальні зміни команди: `fetch` або `pull` 2. Створити/оновити свою гілку 3. Комітити локально 4. Відправити гілку на сервер: `push` 5. Відкрити Merge/Pull Request 6. Після рев'ю - злити в основну гілку 7. Усі інші забирають зміни (`pull`/`fetch`) --- ## Важливі моменти і часті помилки - Віддалений репозиторій **не оновлюється сам**: зміни з'являються на сервері тільки після `push`. - `pull` може призвести до конфліктів, тому що він намагається одразу застосувати зміни. - `fetch` безпечніший, коли ви хочете спочатку подивитися, що змінилося, і тільки потім вирішувати, як інтегрувати. - «Видалити файл локально» ≠ «видалити на сервері»: на сервер це потрапить тільки після коміту і `push`. - Не можна «запушити» те, чого немає в комітах: `push` відправляє **коміти**, а не «стан папки». --- ## Коротке підсумкове визначення Віддалений репозиторій у Git - це **розташований на сервері Git-репозиторій**, який слугує **точкою обміну та синхронізації**: ви **відправляєте** в нього свої коміти (`push`) і **отримуєте** коміти інших (`fetch`/`pull`), забезпечуючи спільну роботу та резервне зберігання історії проекту.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.