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 pull
gør to ting.
- Opdaterer den aktuelle lokale arbejdende gren (aktuelt tjekket ud gren)
- Opdaterer fjernsporingsgrene for alle andre grene.
git pull
henter ( 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
--quiet
eller--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 pull
kommandoen 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 pull
til at opdatere et lokalt lager fra det tilsvarende eksterne lager. Eks: Mens du arbejder lokalt master
, skal du udføre for git pull
at opdatere den lokale kopi af master
og 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 pull
muligvis ikke nok information. Du skal muligvis indtastegit pull origin
ellergit 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 --all
inden 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 pull
eller git fetch
kommanderer, opdaterer du fjernsporingsgrene .
git-hentning plus git-fletning
git pull
er en kombinationskommando, der er lig med git fetch
+ git merge
.
git-hentning
git fetch
Opdaterer 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 merge
flettes den tilsvarende fjernsporingsfilial med den lokale arbejdsfilial.
git pull
git fetch
opdaterer fjernsporingsgrene. git merge
opdaterer den aktuelle filial med den tilsvarende fjernsporingsfilial. Ved hjælp af git pull
får du begge dele af disse opdateringer. Men det betyder, at hvis du bliver tjekket ud til feature
filialen, 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 pull
holder øje med ordene, men ikke ser dem, skal du kigge efter ordet i sync
stedet.
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 fetch
kommandoen 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 checkout
til at skifte til den slags.
Andre ressourcer om git i guide.freecodecamp.org
- Git fusion
- Git checkout
- Git begå
- Git stash
- Git gren