Git в чому різниця між fetch і pull

git pull - це по суті команда git fetch. після якої відразу ж слід git merge.

git fetch отримує зміни з сервера і зберігає їх в каталог refs / remotes /. Це ніяк не впливає на локальні гілки і поточні зміни. А git merge вже вливає всі ці зміни в локальну копію.

Для отримання даних з віддалених проектів, слід виконати:

$ Git fetch [ім'я молодецький. сервера]

Коли ви клонуєте репозиторій, команда clone автоматично додає цей віддалений репозиторій під ім'ям origin. Таким чином, git fetch origin витягує всі напрацювання, відправлені (push) на цей сервер після того, як ви склоніровалі його (або отримали зміни за допомогою fetch). Важливо відзначити, що команда fetch забирає дані в ваш локальний репозиторій, але не зливає їх з будь-якими вашими напрацюваннями і не модифікує те, над чим ви працюєте в даний момент. Вам необхідно вручну злити ці дані з вашими, коли ви будете готові, за допомогою git merge.

Якщо у вас є гілка, налаштована на відстеження віддаленої гілки, то ви можете використовувати команду git pull. Вона автоматично витягує і потім зливає дані з віддаленої гілки в вашу поточну гілку. Цей спосіб може для вас виявитися більш простим або більш зручним. До того ж за замовчуванням команда git clone автоматично налаштовує вашу локальну гілку master на відстеження віддаленої гілки master на сервері, з якого ви клонували (мається на увазі, що на віддаленому сервері є гілка master). Виконання git pull. як правило, отримує (fetch) дані з сервера, з якого ви спочатку склоніровалі, і автоматично намагається злити (merge) їх з кодом, над яким ви в даний момент працюєте.