Пояснення Git Pull

git pull - це команда Git, яка використовується для оновлення локальної версії сховища з віддаленого.

Це одна з чотирьох команд, яка спонукає мережу до взаємодії Git. За замовчуванням git pullробить дві речі.

  1. Оновлення поточної локальної робочої гілки (на даний момент зареєстрована гілка)
  2. Оновлення гілок віддаленого відстеження для всіх інших гілок.

git pullотримує ( git fetch) нові коміти та зливає ( git merge) у вашу локальну гілку.

Синтаксис цієї команди такий:

# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME

у якому:

  • ОПЦІЇ - це параметри команди, такі як--quietабо--verbose. Ви можете прочитати більше про різні варіанти в документації Git
  • РЕПОЗИТОРІЯ - це URL-адреса вашого репо. Приклад: //github.com/freeCodeCamp/freeCodeCamp.git
  • REFSPEC визначає, які посилання потрібно отримати, а які місцеві посилання оновити
  • REMOTE-NAME - це ім’я вашого віддаленого сховища. Наприклад: походження .
  • ІМЯ ФІЛІЇ - це назва Вашої філії. Наприклад: розвивати .

Примітка

Якщо у вас є незафіксовані зміни, частина git pullкоманди злиття не вдасться, і ваша локальна гілка буде недоторкана.

Таким чином, вам слід завжди фіксувати зміни у гілці перед тим, як витягувати нові коміти з віддаленого сховища.

Зміст

  • Використовуючи git pull
  • Розподілений контроль версій
  • git fetch + git merge
  • git pull в IDE

За допомогою git pull

Використовуйте git pullдля оновлення локального сховища з відповідного віддаленого сховища. Приклад: Під час локальної роботи masterвиконайте git pullоновлення локальної копії masterта оновлення інших гілок віддаленого відстеження. (Більше інформації про гілки віддаленого відстеження в наступному розділі.)

Але є кілька речей, про які слід пам’ятати, щоб цей приклад був істинним:

Локальний сховище має пов’язаний віддалений сховище

  • Перевірте це, виконавши git remote -v
  • Якщо пультів дистанційного керування кілька, git pullможливо, недостатньо інформації. Можливо, вам доведеться ввести git pull originабо git pull upstream.

Гілка, в яку ви зараз виїхали, має відповідну гілку віддаленого відстеження

  • Перевірте це, виконавши git status. Якщо немає віддаленого філії відстеження, Git не знає , куди витягувати інформацію з .

Розподілений контроль версій

Git - це розподілена система контролю версій (DVCS). За допомогою DVCS розробники можуть працювати над одним файлом одночасно в окремих середовищах. Після надсилання коду до спільного віддаленого сховища інші розробники можуть витягувати змінений код.

Мережеві взаємодії в Git

У Git є лише чотири команди, які спонукають до взаємодії з мережею. Локальний репозитарій не знає про зміни, внесені до віддаленого сховища, поки не буде запит на інформацію. І віддалений репозитарій не знає про локальні зміни, доки комміти не будуть просунуті.

Чотири мережеві команди:

  • git clone
  • git fetch
  • git pull
  • git push

Філії в DVCS

Під час роботи з Git може здатися, що багато копій одного і того ж коду плавають повсюдно. На кожній гілці є різні версії одного файлу. І різні копії однакових гілок на комп’ютері кожного розробника та на пульті дистанційного керування. Щоб відстежувати це, Git використовує щось, що називається віддаленими гілками відстеження .

Якщо ви виконуєте git branch --allв сховищі Git, гілки віддаленого відстеження відображаються червоним кольором. Це копії коду, призначеного лише для читання, як воно відображається на пульті дистанційного керування. (Коли була остання взаємодія в мережі, яка могла б передавати інформацію локально? Згадайте, коли ця інформація була оновлена ​​востаннє. Інформація у віддалених гілках відстеження відображає інформацію від цієї взаємодії.)

За допомогою віддалених гілок відстеження ви можете працювати в Git на декількох гілках без взаємодії з мережею. Кожного разу, коли ви виконуєте git pullабо виконуєте git fetchкоманди, ви оновлюєте віддалені гілки відстеження .

git fetch плюс git merge -

git pull- це комбінація команд, рівна git fetch+ git merge.

git fetch

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

злиття git

Без будь-яких аргументів git mergeбуде об’єднано відповідну гілку віддаленого відстеження з локальною робочою гілкою.

git pull

git fetchоновлення гілок віддаленого відстеження - -. git mergeоновлює поточну гілку відповідною гілкою віддаленого відстеження. Використовуючи git pull, ви отримуєте обидві частини цих оновлень. Але це означає, що якщо ви вийдете з featureвідділення та виконаєте git pull, при оформленні замовлення masterбудь-які нові оновлення не будуть включені. Кожного разу, коли ви заходите до іншої гілки, яка може мати нові зміни, завжди є гарною ідеєю виконати git pull.

git pull в IDE

Спільна мова в інших IDES може не містити цього слова pull. Якщо ви звертаєте увагу на слова, git pullале не бачите їх, знайдіть слово syncнатомість.

отримання віддаленого PR (Pull Request) до локального репо

Для цілей перегляду та подібних, PR у віддаленому відділенні слід отримувати до місцевого репо. git fetchДля досягнення цього можна використовувати команду наступним чином.

git fetch origin pull/ID/head:BRANCHNAME

ID - це ідентифікатор запиту на витягування, а BRANCHNAME - це назва гілки, яку ви хочете створити. Після створення гілки ви можете використовувати її git checkoutдля переходу на цю філію.

Інші ресурси про git у guide.freecodecamp.org

  • Злиття Git
  • Git checkout
  • Git коміт
  • Git stash
  • Гілка Git