Git pull
і - fetch
це дві команди, які регулярно використовуються користувачами Git. Давайте побачимо різницю між обома командами.
Задля контексту варто пам’ятати, що ми, мабуть, працюємо в репозиторії клонів. Що таке клон? Це просто дублікат іншого сховища. В основному це отримання вашої власної копії чужого вихідного коду.
Тим не менш, щоб ваш клон оновлювався з урахуванням будь-яких змін, застосованих до оригіналу, вам потрібно буде перенести їх у свій клон.
Ось де fetch
і pull
заходьте.
git fetch
це команда, яка повідомляє вашому локальному git отримати найсвіжішу інформацію про метадані з оригіналу (проте не виконує передачу файлів. Це більше схоже на те, щоб просто перевірити, чи є доступні зміни).
git pull
з іншого боку робить це І приносить (копіює) ці зміни з віддаленого сховища.
Наприклад:
git pull origin ankur bugfix
Винос має мати на увазі, що на вашій робочій станції зазвичай є принаймні три копії проекту.
- Одна копія - це ваше власне сховище з власною історією комітів (вже збереженим, так би мовити).
- Друга копія - це ваша робоча копія, де ви редагуєте та створюєте (ще не закріплено за вашим репо).
- Третя копія - це ваша локальна "кешована" копія віддаленого сховища (можливо, оригінал, звідки ви клонували своє).
Ви можете використовувати, git fetch
щоб знати зміни, зроблені у віддаленому репо / гілці з моменту останнього витягування. Це корисно для перевірки перед фактичним витягуванням, яке може змінити файли у вашій поточній гілці та робочій копії (і потенційно втратити ваші зміни тощо).
git fetch git diff ...origin