git hente

git hente

git fetch kommando downloads begår, filer, og refs fra en remote repository i din lokale repo. Henter er, hvad du gør, når du ønsker at se, hvad alle andre har arbejdet på. Det ligner svn update, idet det giver dig mulighed for at se, hvordan den centrale historie har udviklet sig, men det tvinger dig ikke til faktisk at flette ændringerne i dit arkiv. Git isolerer hentet indhold fra eksisterende lokalt indhold; Det har absolut ingen effekt på dit lokale udviklingsarbejde., Hentet indhold skal eksplicit tjekkes ud ved hjælp af kommandoen git checkout. Dette gør det muligt at hente en sikker måde at gennemgå commits på, før du integrerer dem med dit lokale lager.

Når du henter indhold fra en ekstern repo, git pull og git fetch kommandoer tilgængelige til at udføre opgaven. Du kan overveje git fetch den ‘sikre’ version af de to kommandoer. Det vil do .nloade det eksterne indhold, men ikke opdatere din lokale Repos arbejdstilstand, hvilket efterlader dit nuværende arbejde intakt., git pull er den mere aggressive alternativ, og det vil hente eksternt indhold for de aktive lokale afdeling, og umiddelbart udføre git merge for at oprette en sammenfletning forpligte sig til den nye remote indhold. Hvis du har afventende ændringer i gang, vil dette medføre konflikter og kick-off Flet konfliktløsning Flo..

hvordan git fetch fungerer med eksterne grene

for bedre at forstå, hvordan git fetch fungerer, lad os diskutere, hvordan Git organiserer og gemmer forpligtelser., Bag kulisserne, i arkivet ./.git/objects mappe, gemmer Git alle commits, lokale og eksterne. Git holder fjerntliggende og lokale filial forpligter sig tydeligt adskilt ved brug af filial refs. Refs for lokale filialer gemmes i ./.git/refs/heads/. Udførelse af kommandoen git branch udsender en liste over de lokale afdelingsrefs. Følgende er et eksempel på git branch output med nogle demo gren navne.,

git branch
master
feature1
debug2

undersøgelse af indholdet af /.git/refs/heads/ – mappen ville afsløre lignende output.

ls ./.git/refs/heads/
master
feature1
debug2

Fjernafdelinger er ligesom lokale filialer, medmindre de kortlægger til commits fra en andens arkiv. Fjernafdelinger præfikses af den fjernbetjening, de hører til, så du ikke blander dem med lokale filialer. Ligesom lokale grene har Git også refs til fjerntliggende grene. Remote branch refs bor i./.git/refs/remotes/ mappen., Det næste eksempel kodestykke viser de afdelinger, du kan se efter at hente en fjernbetjening repo bekvemt ved navn remote-repo:

git branch -r
# origin/master
# origin/feature1
# origin/debug2
# remote-repo/master
# remote-repo/other-feature

Denne udgang viser den lokale afdelinger vi havde tidligere undersøgt, men nu viser dem begynder med origin/. Derudover ser vi nu de fjerntliggende grene, der er præfikset med remote-repo. Du kan tjekke en fjerngren ligesom en lokal, men dette sætter dig i en løsrevet HEAD tilstand (ligesom at tjekke en gammel commit). Du kan tænke på dem som skrivebeskyttede grene., For at se dine fjernafdelinger skal du blot sende kommandoen -r til kommandoen git branch.

Du kan inspicere fjernafdelinger med de sædvanlige kommandoer git checkoutog git log. Hvis du godkender de ændringer, en fjerngren indeholder, kan du flette den til en lokal gren med en normal git merge. Så i modsætning til SVN er synkronisering af dit lokale depot med et fjernlager faktisk en to-trins proces:Hent, og flet derefter. Kommandoen git pull er en praktisk genvej til denne proces.,

Git Hent kommandoer og indstillinger

git fetch <remote>

Hent alle grene fra arkivet. Dette do .nloader også alle de nødvendige forpligtelser og filer fra det andet arkiv.

git fetch <remote> <branch>

samme som ovenstående kommando, men Hent kun den angivne gren.

git fetch --all

En magt bevæge sig, som henter alle registrerede fjernbetjeninger, og deres filialer:

git fetch --dry-run

--dry-run option vil udføre en demo kørsel af kommando., Det vil output eksempler på handlinger, det vil tage under hente, men ikke anvende dem.

git hent en fjerngren

følgende eksempel viser, hvordan du henter en fjerngren og opdaterer din lokale arbejdstilstand til fjernindholdet. Lad os i dette eksempel antage, at der er en central repo-oprindelse, hvorfra det lokale Depot er blevet klonet fra at bruge kommandoen git clone. Lad os også antage et ekstra fjernlager ved navn Co .orkers_repo, der indeholder en feature_branch, som vi vil konfigurere og hente., Med disse antagelser sæt lad os fortsætte eksemplet.for det første skal vi konfigurere fjernbetjeningen repo ved hjælp af kommandoen git remote.

git remote add coworkers_repo [email protected]:coworker/coworkers_repo.git

Her har vi oprettet en henvisning til kollegerens repo ved hjælp af repo-URL ‘ en. Vi vil nu videregive det eksterne navn til git fetch for at do .nloade indholdet.

git fetch coworkers_repo coworkers/feature_branch
fetching coworkers/feature_branch

Vi har nu lokalt indholdet af kolleger / feature_branch vi har brug for integrerer dette i vores lokale arbejdskopi., Vi begynder denne proces ved at bruge kommandoen git checkout til at tjekke den nyligt do .nloadede fjerngren.

git checkout coworkers/feature_branch
Note: checking out coworkers/feature_branch'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>

udgangen fra denne checkout-operation indikerer, at vi er i en løsrevetHEAD tilstand. Dette forventes og betyder, at voresHEAD ref peger på en ref, der ikke er i overensstemmelse med vores lokale historie. At være, at HEAD er peget på co reforkers / feature_branch ref, kan vi oprette en ny lokal filial fra denne ref., Den ” løsrevne HEAD‘ output viser os, hvordan til at gøre dette ved hjælp af git checkout kommando:

git checkout -b local_feature_branch

Her har vi skabt en ny lokal afdeling opkaldt local_feature_branch. Dette sætter opdateringer HEAD for at pege på det seneste eksterne indhold, og vi kan fortsætte udviklingen på det fra dette punkt.

Synkroniser oprindelse med git hente

følgende eksempel går gennem den typiske arbejdsgang for synkronisering af din lokale repository med den centrale repository ‘ s master-branch.,

git fetch origin

Dette viser de grene, der blev do .nloadet:

commits fra disse nye fjerntliggende grene vises som firkanter i stedet for cirkler i diagrammet nedenfor. Som du kan se, giver git fetch dig adgang til hele filialstrukturen i et andet arkiv.,

for at se, hvilke commits der er blevet tilføjet til opstrømsmasteren, kan du køre en git log ved hjælp af origin/master som filter:

git log --oneline master..origin/master

for at godkende ændringerne og flette dem ind i din lokale mastergren skal du bruge følgende kommandoer:

git checkout master
git log origin/master

så kan vi bruge git merge origin/master:

git merge origin/master

oprindelses – /Master-og master-grenene peger nu på det samme commit, og du er synkroniseret med opstrømsudviklingen.,

Git fetch summary

i anmeldelse er git fetch en primær kommando, der bruges til at do .nloade indhold fra et eksternt lager. git fetch, som bruges i forbindelse med git remote git branch git checkout og git reset for at opdatere en lokal arkiv til den tilstand af en fjernbetjening. Kommandoen git fetch er et kritisk stykke samarbejde git – arbejdsgange., git fetch has similar behavior to git pull, however, git fetch can be considered a safer, nondestructive version.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *