Git Fetch проти Pull: Яка різниця між командами Git Fetch та Git Pull?

Git pullі - fetchце дві команди, які регулярно використовуються користувачами Git. Давайте побачимо різницю між обома командами.

Задля контексту варто пам’ятати, що ми, мабуть, працюємо в репозиторії клонів. Що таке клон? Це просто дублікат іншого сховища. В основному це отримання вашої власної копії чужого вихідного коду.

Тим не менш, щоб ваш клон оновлювався з урахуванням будь-яких змін, застосованих до оригіналу, вам потрібно буде перенести їх у свій клон.

Ось де fetchі pullзаходьте.

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

git pull з іншого боку робить це І приносить (копіює) ці зміни з віддаленого сховища.

Наприклад:

git pull origin ankur bugfix

Винос має мати на увазі, що на вашій робочій станції зазвичай є принаймні три копії проекту.

  • Одна копія - це ваше власне сховище з власною історією комітів (вже збереженим, так би мовити).
  • Друга копія - це ваша робоча копія, де ви редагуєте та створюєте (ще не закріплено за вашим репо).
  • Третя копія - це ваша локальна "кешована" копія віддаленого сховища (можливо, оригінал, звідки ви клонували своє).

Ви можете використовувати, git fetchщоб знати зміни, зроблені у віддаленому репо / гілці з моменту останнього витягування. Це корисно для перевірки перед фактичним витягуванням, яке може змінити файли у вашій поточній гілці та робочій копії (і потенційно втратити ваші зміни тощо).

git fetch git diff ...origin