Отримання змін із репозиторію
Отримання змін із віддаленого репозиторію за допомогою команд git fetch та git merge.
Отримання змін із віддаленого репозиторію в Git
У попередніх уроках ми навчилися відправляти свої зміни у віддалений репозиторій за допомогою команди git push.
Але у реальній роботі часто виникає протилежна ситуація: у віддаленому репозиторії з'явилися нові зміни, які потрібно отримати у свій локальний проєкт.
Це може відбуватися, коли над одним проєктом працюють декілька розробників або коли ви працюєте з різних комп'ютерів.
Команда git fetch
Для отримання інформації про нові зміни у віддаленому репозиторії використовується команда git fetch.
git fetch originКоманда git fetch завантажує нові коміти з віддаленого репозиторію, але не змінює поточні файли у вашій робочій папці.
Куди потрапляють отримані зміни
Після виконання git fetch зміни зберігаються у спеціальній віддаленій гілці.
Назва такої гілки складається з імені віддаленого репозиторію та назви гілки через символ /.
origin/mainНаприклад, origin/main — це копія стану гілки main із віддаленого репозиторію origin.
Об'єднання змін із локальною гілкою
Після отримання змін через git fetch потрібно об'єднати їх зі своєю локальною гілкою.
git merge origin/mainКоманда git merge додає отримані зміни до поточної локальної гілки.
GitHub
origin/main
│
│ git fetch origin
▼
Локальна копія
origin/main
│
│ git merge origin/main
▼
Поточна гілка mainПриклад роботи
Отримати зміни:
git fetch origin
Перейти у main:
git switch main
Об'єднати зміни:
git merge origin/mainРізниця між fetch та pull
Команда git fetch тільки завантажує інформацію про зміни. Вона не змінює ваші файли автоматично.
Команда git pull виконує отримання змін та їх об'єднання автоматично.
git pull = git fetch + git mergeКоманда git fetch є безпечним способом перевірити нові зміни перед їх об'єднанням у свій код.
- Відкрийте свій репозиторій на GitHub.
- Змініть будь-який файл через веб-інтерфейс GitHub.
- Виконайте git fetch origin у локальному проєкті.
- Об'єднайте отримані зміни командою git merge origin/main.
- Перевірте результат у файлах проєкту.
💡 Показати підказку
Після git fetch зміни ще не з'являться у файлах. Спочатку потрібно виконати git merge origin/main.
✅ Показати відповідь
Приклад виконання: Отримати зміни: git fetch origin Перейти у головну гілку: git switch main Об'єднати зміни: git merge origin/main Після цього зміни з GitHub з'являться у локальному проєкті.