Пошук уроків, статей та іншого контенту
Додасте remote, переглянете його URL і синхронізуєте локальні коміти з віддаленим репозиторієм через push та pull.
Віддалений репозиторій — це репозиторій, розміщений на іншому комп’ютері або сервері. Він дає змогу зберігати код у спільному місці та синхронізувати роботу кількох розробників.
Локальний репозиторій може мати один або кілька віддалених репозиторіїв. Для кожного такого репозиторію Git зберігає:
коротке ім’я, наприклад origin;
URL;
інформацію про віддалені гілки.
Найчастіше віддалений репозиторій називають origin. Це лише домовленість: за потреби можна використати іншу назву.
Переконайтеся, що ви перебуваєте в каталозі локального Git-репозиторію:
cd my-project
git statusДодайте віддалений репозиторій командою:
git remote add origin https://github.com/username/my-project.gitЗагальний синтаксис:
git remote add <назва> <URL>Наприклад, для SSH-адреси:
git remote add origin git@github.com:username/my-project.gitПісля виконання команди Git запам’ятає зв’язок між локальним репозиторієм і віддаленим репозиторієм.
Команда
git remote addне передає файли на сервер. Вона лише додає налаштування віддаленого репозиторію.
Щоб переглянути назви всіх налаштованих віддалених репозиторіїв, виконайте:
git remoteРезультат може мати такий вигляд:
originЩоб побачити URL для отримання та надсилання даних, використайте:
git remote -vПриклад результату:
origin https://github.com/username/my-project.git (fetch)
origin https://github.com/username/my-project.git (push)Позначення означають:
fetch — URL, з якого Git отримує зміни;
push — URL, на який Git надсилає локальні коміти.
У простих конфігураціях ці URL однакові.
Окремо отримати URL можна командами:
git remote get-url origin
git remote get-url --push originДля детальнішої інформації про віддалений репозиторій:
git remote show originЦя команда показує віддалені гілки та зв’язок локальних гілок із ними.
Якщо URL було вказано неправильно або потрібно перейти з HTTPS на SSH, використайте:
git remote set-url origin git@github.com:username/my-project.gitПеревірте результат:
git remote -vЩоб перейменувати віддалений репозиторій:
git remote rename origin upstreamПісля цього звертатися до нього потрібно буде за новою назвою:
git push upstream mainpushКоманда git push надсилає локальні коміти у віддалений репозиторій.
Спочатку перевірте назву поточної гілки:
git branch --show-currentНаприклад, якщо поточна гілка називається main, виконайте:
git push origin mainЗагальний синтаксис:
git push <віддалений-репозиторій> <гілка>Під час першого надсилання гілки зручно встановити зв’язок із віддаленою гілкою:
git push -u origin mainПараметр -u або --set-upstream встановлює upstream-гілку. Після цього для наступних надсилань із цієї гілки зазвичай достатньо виконати:
git pushUpstream-зв’язок також дає змогу використовувати скорочені команди:
git pullЗамість:
git pull origin mainНижче наведено типовий сценарій для вже створеного локального репозиторію:
# Перейти до каталогу проєкту
cd my-project
# Перевірити поточний стан
git status
# Додати зміни до індексу
git add .
# Створити локальний коміт
git commit -m "Add project files"
# Додати віддалений репозиторій
git remote add origin https://github.com/username/my-project.git
# Перевірити налаштований URL
git remote -v
# Надіслати гілку main і встановити upstream-зв’язок
git push -u origin mainЯкщо основна локальна гілка називається master, у командах потрібно використовувати master:
git push -u origin masterpullКоли інший розробник додав коміти у віддалений репозиторій, локальна копія ще не містить цих змін.
Команда:
git pullотримує зміни з upstream-гілки та інтегрує їх у поточну локальну гілку.
Якщо upstream ще не налаштовано, вкажіть репозиторій і гілку явно:
git pull origin mainУ типовому випадку git pull поєднує дві операції:
отримує нові коміти з віддаленого репозиторію;
інтегрує їх у поточну гілку.
Залежно від налаштувань Git інтеграція може виконуватися через злиття або переміщення комітів. Для базового сценарію важливо розуміти, що pull синхронізує локальну гілку зі змінами на сервері.
Після встановлення upstream-зв’язку робочий цикл може виглядати так:
# Отримати актуальні зміни перед початком роботи
git pull
# Перевірити стан робочого каталогу
git status
# Додати змінені файли
git add .
# Створити локальний коміт
git commit -m "Update feature"
# Надіслати локальні коміти
git pushПеред push варто переконатися, що локальна гілка містить актуальний стан віддаленої гілки. Якщо віддалений репозиторій змінився після останнього pull, Git може відхилити push.
pushРозглянемо ситуацію:
локально ви створили коміт;
інший розробник уже надіслав коміт у ту саму віддалену гілку;
ви виконуєте git push.
Git може показати помилку на кшталт:
rejected because the remote contains work that you do not have locallyЦе означає, що локальна гілка відстає від віддаленої. Спочатку отримайте та інтегруйте зміни:
git pull origin mainЯкщо конфліктів немає, після цього можна повторити:
git push origin mainЯкщо Git повідомляє про конфлікт, потрібно вручну розв’язати його у файлах, додати виправлені файли та завершити операцію. Після цього повторно виконайте git push.
Не слід без потреби використовувати:
git push --forceПримусове надсилання може перезаписати коміти, які вже є у віддаленій гілці.
push, pull і fetchgit pushПередає локальні коміти у віддалений репозиторій:
git push origin maingit pullОтримує зміни та інтегрує їх у поточну локальну гілку:
git pull origin maingit fetchЛише отримує інформацію та коміти з віддаленого репозиторію, не змінюючи поточні файли:
git fetch originПісля fetch можна переглянути віддалені гілки:
git branch -rНаприклад:
origin/mainДля початкової синхронізації зазвичай достатньо git pull, але git fetch корисний, коли потрібно спочатку отримати зміни та перевірити їх окремо.
Якщо виконати git remote add origin ... повторно, Git повідомить, що віддалений репозиторій із таким ім’ям уже існує.
Перевірте URL:
git remote -vЯкщо URL неправильний, змініть його:
git remote set-url origin <новий-URL>Якщо гілка називається main, але виконати:
git push origin masterGit не знайде локальну гілку master.
Перевірте поточну гілку:
git branch --show-currentПід час виконання git push Git може повідомити, що для поточної гілки не налаштовано upstream.
Виконайте перше надсилання з параметром -u:
git push -u origin mainПомилка автентифікації означає, що Git не може підтвердити ваші права доступу до вказаного URL. Перевірте:
чи правильний URL;
чи має ваш обліковий запис доступ до репозиторію;
чи правильно налаштований спосіб автентифікації.
git push надсилає саме коміти, а не просто незбережені зміни у файлах. Перед надсиланням потрібно виконати:
git add .
git commit -m "Initial commit"
git push -u origin mainДля синхронізації локального проєкту з віддаленим репозиторієм:
# Додати віддалений репозиторій один раз
git remote add origin https://github.com/username/my-project.git
# Перевірити його URL
git remote -v
# Отримати віддалені зміни
git pull origin main
# Створити локальний коміт
git add .
git commit -m "Update project"
# Надіслати коміт і запам’ятати upstream-гілку
git push -u origin main
# Надалі достатньо коротких команд
git pull
git pushВіддалений репозиторій додають командою git remote add.
Переглянути налаштовані URL можна через git remote -v.
git remote set-url змінює адресу віддаленого репозиторію.
git push надсилає локальні коміти у віддалений репозиторій.
git pull отримує віддалені зміни та інтегрує їх у поточну гілку.
Параметр -u встановлює upstream-зв’язок між локальною та віддаленою гілками.
Якщо push відхилено, спочатку потрібно отримати актуальні зміни через pull і лише потім повторити надсилання.