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 merge

Без никакви аргументи 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 проверка
  • Git ангажиране
  • Git скривалище
  • Git клон