Робота з віддаленими репозиторіями (git) - environment - jtalks wiki

Що таке система контролю версій, я думаю всі знають (Wikipedia), так ось, git це розподілена (distibuted) система контролю версій, це означає, що немає такого поняття, як центральний сервер (репозиторій) і клієнт, кожен git репозиторій - самодостатній. У вас може бути всього один репозиторій (той в якому ви працюєте), але якщо ви працюєте в команді, то виникає необхідність в синхронізації. Синхронізація здійснюється за допомогою віддалених репозиторіїв, які, в залежності від обраної стратегії, є або репозиторіями членів команди, або окремим репозиторієм (назвемо його головним). Робота з віддаленим репозиторієм складається всього лише в тому, щоб поміщати або отримувати дані з нього. Це робиться за допомогою команд git push. git fetch і git pull про які піде мова нижче.

Якщо ваше сховище створений методом копіювання вже існуючого сховища, тобто через git clone. то у вас вже є один віддалений репозиторій з ім'ям origin

Робота з віддаленими репозиторіями (git) - environment - jtalks wiki

Більш детальну інформацію по віддаленому сховища, можна подивитися за допомогою команди:

git remote show origin # замість origin можна підставити будь-яке ім'я віддаленого сховища (якщо їх у вас кілька)

Якщо ж ви створювали репозиторій за допомогою git init, то віддалених репозиторіїв у вас немає, в цьому можна переконається виконавши команду:

висновок якої буде порожній. Тому перейдемо до додавання віддаленого сховища.

Додавання віддаленого сховища

Щоб додати віддалений репозиторій, скористайтеся командою:

git remote add% REMOTE_NAME%% REMOTE_URL%

mkdir / tmp / my_remote cd / tmp / my_remote # створюємо директорію і переходимо в неї
git init # створюємо репозиторій
touch readme # додаємо порожній файл
git add readme # додаємо новий файл в git-індекс
git commit -m 'initial commit' # фіксуємо зміни
cd / tmp
git clone / tmp / my_remote cloned_my_remote

Робота з віддаленими репозиторіями (git) - environment - jtalks wiki

Видалити або перейменувати розмови віддаленого сховища

Видалити або перейменувати віддалений репозиторій дуже просто, просто подивіться синтаксис команд:

git remote rename origin my_remote_name # перейменовуємо origin в my_remote_name
git remote rm my_remote_name # видаляємо my_remote_name

Отримуємо дані з віддаленого сховища

Отримати дані з віддаленого сховища можна двома різними командами git fetch і git pull

Поговоримо детальніше про кожну з них.

git fetch забирає зміни із зазначеного віддаленого сховища:

git fetch origin # origin можна не вказувати, git використовує це ім'я за замовчуванням

git merge origin / master

git diff HEAD origin / master # покаже відмінності вашої робочої копії з гілкою master віддаленого сервера origin
git diff HEAD origin / another_branch # покаже відмінності вашої робочої копії з гілкою another_branch віддаленого сервера origin

Таким же чином можна провести злиття поточної гілки з будь-якої з віддалених гілок:

git merge origin / master
git merge origin / another_branch

Відмінності цієї команди від попередньої в тому, що після того, як git забере зміни з віддаленого сховища, він автоматично спробує злити їх з вашої поточної гілкою:

git pull origin master

Схожі статті