Git Pull forklaret

git pull er en Git-kommando, der bruges til at opdatere den lokale version af et lager fra en fjernbetjening.

Det er en af ​​de fire kommandoer, der beder netværksinteraktion med Git. Som standard git pullgør to ting.

  1. Opdaterer den aktuelle lokale arbejdende gren (aktuelt tjekket ud gren)
  2. Opdaterer fjernsporingsgrene for alle andre grene.

git pullhenter ( git fetch) de nye forpligter sig og fusionerer ( git merge) disse i din lokale filial.

Denne kommandas syntaks er som følger:

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

hvori:

  • VALGMULIGHEDER er kommandomulighederne, såsom--quieteller--verbose. Du kan læse mere om de forskellige muligheder i Git-dokumentationen
  • REPOSITORY er URL'en til din repo. Eksempel: //github.com/freeCodeCamp/freeCodeCamp.git
  • REFSPEC specificerer, hvilke refs der skal hentes, og hvilke lokale refs der skal opdateres
  • REMOTE-NAME er navnet på dit eksterne arkiv. For eksempel: oprindelse .
  • AFDELING-NAVN er navnet på din filial. For eksempel: udvikle .

Bemærk

Hvis du har uforpligtede ændringer, vil den flette del af git pullkommandoen mislykkes, og din lokale filial vil være uberørt.

Således skal du altid foretage dine ændringer i en gren, før du trækker nye forpligtelser fra et eksternt lager.

Indholdsfortegnelse

  • Ved brug af git pull
  • Distribueret versionskontrol
  • git fetch + git merge
  • git pull i IDE'er

Brug git pull

Brug git pulltil at opdatere et lokalt lager fra det tilsvarende eksterne lager. Eks: Mens du arbejder lokalt master, skal du udføre for git pullat opdatere den lokale kopi af masterog opdatere de andre eksterne sporingsgrene. (Flere oplysninger om fjernsporingsgrene i næste afsnit.)

Men der er et par ting at huske på for at eksemplet skal være sandt:

Det lokale arkiv har et sammenkædet eksternt lager

  • Tjek dette ved at udføre git remote -v
  • Hvis der er flere fjernbetjeninger, er der git pullmuligvis ikke nok information. Du skal muligvis indtaste git pull origineller git pull upstream.

Den gren, du i øjeblikket er tjekket ud til, har en tilsvarende fjernsporingsgren

  • Kontroller dette ved at udføre git status. Hvis der ikke er nogen fjernsporingsgren, ved Git ikke, hvor de skal hente oplysninger fra .

Distribueret versionskontrol

Git er et distribueret versionskontrolsystem (DVCS). Med DVCS kan udviklere arbejde på den samme fil på samme tid i separate miljøer. Efter at have skubbet kode op til det delte eksterne lager, kan andre udviklere trække ændret kode.

Netværksinteraktioner i Git

Der er kun fire kommandoer, der beder om netværksinteraktioner i Git. Et lokalt lager har ingen bevidsthed om ændringer foretaget på det eksterne lager, indtil der er en anmodning om information. Og et fjernt lager har ingen bevidsthed om lokale ændringer, før forpligtelser skubbes.

De fire netværkskommandoer er:

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

Filialer i DVCS

Når du arbejder med Git, kan det føles som om der er mange kopier af den samme kode, der flyder overalt. Der er forskellige versioner af den samme fil på hver gren. Og forskellige kopier af de samme grene på hver udviklers computer og på fjernbetjeningen. For at holde styr på dette bruger Git noget, der kaldes remote tracking branches .

Hvis du udfører git branch --allinden for et Git-arkiv, vises eksterne sporingsgrene i rødt. Disse er skrivebeskyttede kopier af koden, som den vises på fjernbetjeningen. (Hvornår var den sidste netværksinteraktion, der ville have bragt oplysninger lokalt? Husk, hvornår disse oplysninger sidst blev opdateret. Oplysningerne i de eksterne sporingsgrene afspejler oplysningerne fra denne interaktion.)

Med fjernsporingsgrene kan du arbejde i Git på flere grene uden netværksinteraktion. Hver gang du udfører git pulleller git fetchkommanderer, opdaterer du fjernsporingsgrene .

git-hentning plus git-fletning

git puller en kombinationskommando, der er lig med git fetch+ git merge.

git-hentning

git fetchOpdaterer på egen hånd alle fjernsporingsgrene i det lokale lager. Ingen ændringer afspejles faktisk i nogen af ​​de lokale arbejdsområder.

git fusion

Uden argumenter git mergeflettes den tilsvarende fjernsporingsfilial med den lokale arbejdsfilial.

git pull

git fetchopdaterer fjernsporingsgrene. git mergeopdaterer den aktuelle filial med den tilsvarende fjernsporingsfilial. Ved hjælp af git pullfår du begge dele af disse opdateringer. Men det betyder, at hvis du bliver tjekket ud til featurefilialen, og du udfører git pull, når du tjekker til master, vil nye opdateringer ikke være inkluderet. Når du tjekker til en anden gren, der kan have nye ændringer, er det altid en god ide at udføre git pull.

git pull i IDE'er

Almindeligt sprog i andre IDES inkluderer muligvis ikke ordet pull. Hvis du git pullholder øje med ordene, men ikke ser dem, skal du kigge efter ordet i syncstedet.

hentning af en ekstern PR (Pull Request) til lokal repo

Med henblik på gennemgang og lignende skal PR'er i fjernbetjening hentes til den lokale repo. Du kan bruge git fetchkommandoen som følger for at opnå dette.

git fetch origin pull/ID/head:BRANCHNAME

ID er pull-anmodnings-id'et, og BRANCHNAME er navnet på den gren, du vil oprette. Når grenen er oprettet, kan du bruge git checkouttil at skifte til den slags.

Andre ressourcer om git i guide.freecodecamp.org

  • Git fusion
  • Git checkout
  • Git begå
  • Git stash
  • Git gren