Git remote: опис, порядок роботи, репозиції

11 0 Новини високих технологій

Популярна система контролю версій Git дає кожному розробнику власну копію репозиції проекту або репозиторію, тобто сховища, в комплекті зі своєю локальною історією та структурою. У термінології Git такий репозиторій називається локальним. Віддалені репозиторії або git remote repository - це копії локальні, але зберігаються в іншому місці в інтернеті. Таке сховище може служити резервною копією для тих випадків, якщо з вашим комп'ютером щось трапиться, а також для спільної роботи.

Git remote: опис, порядок роботи, репозиції

Віддалений доступ і його особливості

Командна робота над проектом неможлива без навчання управлінню віддаленими репозиторіями. Кожна модифікація проекту зберігається в Мережі або на сервері системи контролю версій, такий як Git. Варіантів проекту з невеликими відмінностями може бути кілька, і всі вони доступні іншим розробникам. Деякі репозиторії можна тільки переглядати, в інші дозволено вносити зміни. Для кожного такого діяння в системі Git існує кілька спеціальних команд, що дозволяють керувати віддаленими копіями проектів. Всі вони є модифікацією основної команди — git remote.


Управління віддаленим сховищем в Git

Нижче розглянуто процес роботи з віддаленими сховищами в Git. Зазвичай користувачам системи доводиться ділитися поруч комітів, а не одним набором змін. Замість того, щоб відправляти набір змін з робочої копії в центральний репозиторій, Git дозволяє розробникам обмінюватися цілими галузями між окремими сховищами. У кожного користувача може бути кілька репозиторіїв, кожен з яких зазвичай доступний тільки для читання або читання і запису. Співпраця з іншими людьми передбачає управління цими віддаленими репозиторіями. Саме для цього потрібна команда для віддаленого доступу — git remote. Вона є однією із частин більше широкої системи, що відповідає за синхронізацію змін.


Git remote: опис, порядок роботи, репозиції

Особливості віддаленого доступу

Записи, зареєстровані за допомогою команди віддаленого доступу, що використовуються в поєднанні з командами git remote push, fetch і pull. Як git fetch, так і git pull можна використовувати для читання з віддаленого сховища. Команда git remote дозволяє створювати, переглядати і видаляти підключення до інших репозиториям. Наприклад, push використовується для того, щоб помістити дані в сховищі, а pull, навпаки, щоб отримати. Команда fetch потрібна, щоб отримати всю інформацію, відсутню на локальній копії, з віддаленого сховища. Після її виконання створюються посилання на все нові гілки, в яких знаходяться дані. Тобто оновлення не зливаються з поточним проектом, а розташовуються окремо.
Git remote: опис, порядок роботи, репозиції
Згодом дані потрібно буде зливати вручну, якщо виникне така необхідність. Для автоматичного вилучення і з'єднання репозиторіїв використовується git remote pull. Віддалені підключення більше нагадують закладки, ніж прямі посилання на інші репозиторії. Замість надання доступу в режимі реального часу вони служать зручними іменами, які можуть використовуватися для посилання на не дуже зручний URL-адресу.
Команда віддаленого доступу по суті є інтерфейсом для управління списком записів, які знаходяться у файлі ./.git/config. Вона потрібна для управління віддаленими сховищами, видалення неіснуючих, відслідковування визначених гілок та зміни адрес віддалених репозиторіїв (git change remote).

Відображення віддалених сховищ

За замовчуванням Git видаляє список збережених раніше віддалених підключень до інших репозиториям. При цьому створюється рядок, в якій будуть вказані імена віддалених репозиторіїв. Виклик git remote з параметром -v покаже список імен закладок репозиторію і, крім того, відповідні їм URL-адреси. Опція -v означає verbose. Команда git remote add створить нову запис з'єднання віддаленому сховищі. Після того як дистанційна запис була налаштована за допомогою команди віддаленого доступу, її ім'я може бути передано іншим командам Git для зв'язку з сховищем.

Конфігурація команди віддаленого доступу

Нижче розглянуто варіанти використання команди для керування репозиторіями. Проста запис git remote видає список віддалених підключень. Існує кілька її конфігурацій. Команда зручна для внесення змін в файл ./.git/config. Також його можна редагувати вручну за допомогою текстового редактора. Команда для віддаленого доступу Git є однією з тих, що приймає додаткові "підкоманди".
Git remote: опис, порядок роботи, репозиції
Варіанти "встановлення":
  • Команда “git remote add " використовується для створення нового підключення до віддаленого сховища. Після додавання з'являється можливість віддаленого керування використовувати як зручний ярлик для в інших командах. Ця команда приймає параметр -f, який додає ім'я гілки відразу після створення віддаленого запису. А також параметр --tags", який негайно отримує і імпортує кожен тег з віддаленого сховища.
  • Ще одна команда git remote rm дозволяє видалити з'єднання з віддаленим сховищем. Вона змінює /.git/config і видаляє файл з ім'ям . Якщо потім виконати цю команду з префіксом remote_test, можна побачити, що запис більше не існує.
  • Запис git remote rename перейменовує віддалене з'єднання. При цьому спочатку зазначається нове ім'я, а потім — нове. Щоб змінити віддалений URL-адресу репозиторію, необхідно оновити конфігураційний файл новим URL-адресою. В іншому випадку ви отримаєте повідомлення про помилку.
  • Команда get-url виводить URL-адреси для віддаленого доступу. При додаванні параметра - all будуть перераховані всі URL-адреси доступних віддалених сховищ.
  • Git remote: опис, порядок роботи, репозиції

    Посилання на віддалений репозиторій

    Git підтримує безліч способів для створення посилання на віддалений репозиторій. Два найпростіших з них: отримання доступу до віддаленого сховища через HTTP і через SSH.
    HTTP є найбільш легким способом дозволити анонімний доступ тільки для читання. Але в першому випадку не представляється можливості вносити зміни в проект через HTTP. Для доступу, при якому можливе читання і запис, потрібно використовувати SSH. Для цього потрібно діюча обліковий запис SSH. Крім цього, Git підтримує доступ з перевіркою автентичності через SSH.

    Особливості клонування репозиторію: git remote origin

    Git розроблений, щоб створити кожному програмісту повністю ізольоване середовище для проекту. Це означає, що інформація не повідомляється автоматично між сховищами. Замість цього розробники повинні вручну передавати зміни в локальний репозиторій і відправляти свої коміти назад в центральне сховище. Тому команда git remote — простий спосіб передати URL-адресу для обміну інформацією.

    Коли розробник клонує репозиторій за допомогою git clone, він автоматично створює з ним віддалене з'єднання. При клонуванні Git за замовчуванням називає центральне сховище — origin, тому команда для звернення до нього записується як git remote origin. Ця функція є корисною для тих, хто створює локальну копію центрального сховища, так як за її допомогою буде легше публікувати коміти і зберігати зміни.
    Git remote: опис, порядок роботи, репозиції

    Робота з гілками віддалено

    Іноді потрібно з'ясувати, які гілки існують у віддаленому сховищі. Якщо ви використовуєте GitHub або Gitweb для розміщення вашого репозиторію, зазвичай легко визначити їх імена. Але бувають випадки, коли вони недоступні. Також можна управляти окремими гілками за допомогою команди git remote branches. Віддалене відстеження гілок записується так: / . Наприклад, для відображення гілки master на вашому origin-сервері при останньому зверненні до неї, потрібно перевірити гілку origin/master. Якщо в процесі співпраці з іншим розробником той викладає оновлений проект з новою гілкою, то на сервері він буде представлений як посилання з вказівкою на комміт, названий ім'ям цієї гілки.