Що таке система контролю версій, я думаю всі знають (Wikipedia), так ось, git це розподілена (distibuted) система контролю версій, це означає, що немає такого поняття, як центральний сервер (репозиторій) і клієнт, кожен git репозиторій - самодостатній. У вас може бути всього один репозиторій (той в якому ви працюєте), але якщо ви працюєте в команді, то виникає необхідність в синхронізації. Синхронізація здійснюється за допомогою віддалених репозиторіїв, які, в залежності від обраної стратегії, є або репозиторіями членів команди, або окремим репозиторієм (назвемо його головним). Робота з віддаленим репозиторієм складається всього лише в тому, щоб поміщати або отримувати дані з нього. Це робиться за допомогою команд git push. git fetch і git pull про які піде мова нижче.
Якщо ваше сховище створений методом копіювання вже існуючого сховища, тобто через git clone. то у вас вже є один віддалений репозиторій з ім'ям origin
Більш детальну інформацію по віддаленому сховища, можна подивитися за допомогою команди:
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 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