Jeg finder det svært at forstå git, da jeg ikke kunne finde betydningen af de ord, der blev brugt til handlingerne. Jeg har tjekket ordbogen for betydningen af “scene”, og ingen af betydningerne var relateret til kildekontrolbegreber.

Hvad betyder “stage” i sammenhæng med git?

Kommentarer

  • relateret: Hvad er fordelen ved git ‘ s to -sceneforpligtelsesproces (iscenesættelse)?
  • Git har faktisk sit eget ordforråd. Og da hver instruktion er formuleret i det specielle ordforråd, er det svært at komme i gang. At ” etape ” er at gøre git add file.ext for en bestemt fil eller git add . for at påvirke alle ændrede og ikke-sporede filer. Filer, der er tilføjet på denne måde siges at være ” iscenesat “, og de vil blive inkluderet i den næste ” begå “. Forpligtelsen er et øjebliksbillede af dit arbejde oprettet f.eks. med git commit -m "I wrote something".
  • Git er svært at forstå, fordi der ikke er nogen begrebsmæssig tutorial derude. Alt går gennem unødvendige detaljer.
  • Mente du at fjerne ” terminologi ” tag fra dette spørgsmål? Det virker som et helt gyldigt mærke for mig.
  • Af en eller anden grund er den bedste måde, jeg kunne forstå vigtigheden af iscenesættelse på, fra dette svar i Quora: qr .ae / TbSK2I

Svar

Til fase en fil er simpelthen at forberede det fint til en forpligtelse. Git med sit indeks giver dig kun mulighed for at begå visse dele af de ændringer, du har foretaget siden sidste forpligtelse. Sig, at du arbejder på to funktioner – den ene er færdig, og den ene har stadig brug for noget arbejde. Du vil gerne forpligte dig og gå hjem (5 o “ur, endelig!), Men vil ikke begå delene af den anden funktion, hvilket ikke er gjort endnu. Du iscenesætter de dele, du kender, hører til den første funktion og begå. Nu er din forpligtelse dit projekt med den første funktion udført, mens den anden stadig er i gang i din arbejdsmappe.

Kommentarer

  • God forklaring. Bemærk, at git, distribueret, naturligvis giver dig mulighed for at begå begge funktioner, da forpligtelser er lokale (i første omgang). Stadig kan det være nødvendigt at placere ændringerne opdelt i en forpligtelse pr. funktion, og igen er iscenesættelse praktisk.
  • Jeg don ‘ t forstå, hvorfor du har brug for iscenesættelse til dette. Jeg kan gøre dette med HG eller endda SVN ved kun at forpligte de relevante filer. Det føles som om denne funktion primært er designet til at hjælpe folk, der insisterer på at arbejde med kommandolinjen, hvor den ‘ s hårdere t o afkrydsningsfelter for, hvad du begår.
  • @jiggy git giver dig mulighed for at iscenesætte del af en fil. Du kan også iscenesætte en fil, foretage yderligere ændringer og derefter begå den tilstand, den var i ved iscenesættelse. Du kan ‘ ikke gøre det i subversion.
  • @jiggy I SVN er der noget mellem det tidspunkt, hvor du vælger hvilke filer / dele af filer du vil begå og når du er færdig med at skrive din forpligtelsesmeddelelse, registreres der hvilke filer / dele du valgte at begå. Det nævnes måske aldrig eksplicit, det kan implementeres i SVN-klienten snarere end en faktisk del af lageret, det kan bare være nogle flag i hukommelsen, men det er SVN ‘ s scene. Jeg har ikke ‘ ikke kigget på HG, men jeg formoder, at det gør det samme. Forskellen med git er, at git anerkender, at det er en ting, registrerer det på disken og lader brugeren komme direkte til det.
  • Den anden pil ” scenefiler ” i figuren kan være vildledende. ” stage hunks ” er muligvis mere præcis?

Svar

Da alle hidtil har svaret det på den “formelle” måde, så lad mig gøre dette med alternativer til at forbedre læring med metaforernes kraft.

iscenesættelsesområdet er som:

  • en cache med filer, som du vil begå
  • ikke en serie af rør, men faktisk en dumper, klar til at flytte det arbejde, du lægger det med, ind i arkivet
  • et magisk sted, hvor valgte filer vil blive omdannet til sten med dit troldmandskab og magisk kan transporteres til arkiv ved din indfald
  • den gule murstensvej for filerne at gå lykkeligt til depotet (eller falde af, hvis du vil vende tilbage)
  • det fiktive sted i havnehaven, hvor filer modtages et par cementsko og derefter kastes i depothavet
  • receptionen på biblioteket, lægger du filerne der, så bibliotekaren kan forberede sig på arkivering i biblioteket
  • en kasse, hvor du lægger ting inden du skubber den under din seng, hvor din seng er et lager af kasser, du tidligere har skubbet ind i
  • filens indlæsningsbakke, før den går ind i lagerlageret med power loader
  • filteret til en elektrisk dryp kaffemaskine, hvis filerne er som kaffepulveret, så er de forpligtede filer den bryggede kaffe
  • Scrooge McDucks kontor ved siden af hvælvet, filerne er som mønterne, inden de går ind i hvælvet på hans enorme pengebinge id = “5d1c58bd04”>

magisk !

Kommentarer

  • Elsker analogierne ; måde at gå op ^ _ ^
  • Elsk den endelige analogi.
  • Dette svar var ” FORSKYLDT ” der er behov for blandt de almindelige forsøg på at forklare metafysikken i git index = git staging. Helt ærligt vil jeg ‘ også gerne vide, hvad Linus tænkte, da han besluttede, at han ville have et indeksområde. Jeg kan godt lide det, men jeg vil simpelthen bedre forstå, hvorfor det ‘ er godt at have det, og hvordan man bruger det mest effektivt.

Svar

Iscenesættelse er et skridt inden forpligtelsesprocessen i git. Det vil sige, at en commit i git udføres i to trin: staging og faktisk commit.

Så længe et ændringssæt er i staging-området, giver git dig mulighed for at redigere det som du vil (erstatte iscenesatte filer med andre versioner af iscenesatte filer, fjern ændringer fra iscenesættelse osv.).

Brudt metafortid:

Overvej et scenarie, hvor du ringer til mobilerne for at få dine ting fra din gamle lejlighed til din nye lejlighed. Før du gør det, vil du gennemgå dine ting, beslutte hvad du tager med dig, og hvad du smider, pakke det i poser og lade det være i hovedhallen. Flytterne kommer simpelthen, får de (allerede pakkede) poser fra gangen og transporteret dem. I dette eksempel iscenesættes alt, indtil bevægerne får dine ting: du beslutter dig for, hvad der går hvor, hvordan du skal pakke det og så videre (f.eks. Kan du beslutte, at halvdelen af dine ting skal smides væk, før bevægerne overhovedet kommer derhen – at ” s del af iscenesættelse).

Fra et teknisk synspunkt understøtter iscenesættelse også transaktionsforpligtelser ved at opdele alle operationer i hvad der kan mislykkes (iscenesættelse) og hvad der ikke kan mislykkes (begå):

Forpligtelsen i git implementeres transaktionelt, når iscenesættelsen er vellykket. Flere trin i iscenesættelsen kan mislykkes (for eksempel skal du begå, men din harddisk er 99,9999% fuld, og git har ikke plads til udfør en forpligtelse). Dette mislykkes i iscenesættelsen (dit arkiv vil ikke blive ødelagt af en delvis forpligtelse), og iscenesættelsesprocessen påvirker ikke din forpligtelseshistorik (det ødelægger ikke dit lager i tilfælde af en fejl).

Kommentarer

  • … og så lidt stemmer indtil videre.

Svar

At iscenesætte en fil er at forberede den til en forpligtelse. Da git udsætter denne handling for brugernes kontrol, giver den dig mulighed for at oprette delvise forpligtelser eller ændre en fil, iscenesætte den, ændre den igen og kun begå eller vende tilbage til den oprindelige ændring.

Staging giver dig mulighed for finere kontrol over nøjagtigt hvordan du vil nærme dig versionskontrol.

Svar

For at tilføje til de andre fremragende svar, her er hvor navnet på “scene” kommer fra:

Jeg kontrollerede ordbogen for betydningen af scenen, og ingen af betydningerne var relateret til kildekontrolkoncepter.

På engelsk kan “to stage” betyde

organisere og deltage i (en offentlig begivenhed): UDF-tilhængere iscenesat en demonstration i Sofia

(fra http://oxforddictionaries.com/definition/stage )

Navnet “iscenesættelse” for git-funktionen stammer fra denne betydning: Når du iscenesætter, forbereder du og organiserer en forpligtelse.Selvfølgelig er en forpligtelse ikke helt det samme som en forestilling, men det er en vigtig begivenhed i en VCS :-).

Kommentarer

  • Jeg ‘ jeg har troet, at det matchede brugen i iscenesættelse
  • Ditto. Også ” et punkt, en periode eller et trin i en proces eller udvikling. ”
  • Også ‘ iscenesættelsesserver ‘ er et ret almindeligt udtryk, der bruges til at beskrive en server, der ‘ er mellem udvikling og produktion.

Svar

“Trin” er et teknisk nødvendigt mellemtrin i processen med at kontrollere en fil, nemlig at indsamle de ændringer, der skal føjes til lageret. Gits forfattere valgte at gøre dette trin synligt og vedholdende, hvor andre VCS gør det til en kortvarig del af forpligtelsesprocessen. Så det er bare en mulighed, som git giver dig, fordi det kan, så hvorfor ikke?

Den måde, jeg ser det på, er det vigtigste ved git “stage”, at andre VCS ikke er, at du kan bruge den til at kontrollere en fil. Det er effektivt et unavngivet, ikke-kommenteret lokalt engagement, der giver dig et mellemliggende trin mellem gøres med alt dit arbejde og forpligte det permanent til arkivet og slet ikke have noget gemt i dit lokale repo.

Lad os for eksempel sige, at du har en funktion delvist færdig. Den er i en stabil tilstand, består alle testene og kan gå i produktion, men du har mere arbejde at gøre med den. Du kan iscenesætte alle dine ændringer og derefter fortsætte med at arbejde på funktionen.

Senere har du muligheden for bare at begå det, du iscenesatte (og skubbe det til det eksterne lager) eller at tilføje dit nye ændringer i dit iscenesættelsesområde og derefter begå det på én gang eller at fortryde bare dine nye ændringer og vende dit arbejdsmappe tilbage til den tilstand, det var, da du iscenesatte dine ændringer.

Det er fuldstændigt muligt for praktisk talt at springe iscenesættelsesområdet helt over og bare bruge -a til git commit, hvis du ikke finder iscenesættelsesområdet et nyttigt koncept. Mange mennesker springer over iscenesættelse, og GUI-værktøjer tillader normalt også dette.

Kommentarer

  • ” andet VCS don ‘ t ” – hvad får dig til at tro det? Hylder hos Perforce ser ud til at gøre hvad du beskriver, og selv med få ekstra klokker og fløjter
  • @gnat ja, selvfølgelig mange andre VCS giver dig noget som iscenesættelse. Ved ” anden VCS ” mener jeg andre VCS, der ikke ‘ t har noget som git ‘ s scene, da det var det OP henviste til.
  • Jeg fandt dette svar meget bedre end alt det ovenstående, da det ‘ er den eneste, der præciserer, hvorfor Staging overhovedet findes (er teknisk påkrævet ), en forklaring på dens oprindelse ( Git ‘ s forfattere valgte at gøre dette trin synligt og vedholdende ) og tilføjede det, som jeg personligt finder være en god definition for det ( et mellemliggende, ikke-navngivet, ukommenteret lokalt engagement ) . Jeg tror dog, det kunne forbedres ved at citere en kilde til udsagnet om Stagings oprindelse og uddybe mere om, hvorfor det ‘ s teknisk krævet . @OldPro
  • Hvis git blev designet fra bunden, kunne dette netop have været en del af en generaliseret ” gren ” koncept, lokalt og uset af andre i dette tilfælde. Ligeledes kunne ” stash ” netop have været implementeret (og forstået!) Som en specifik forekomst af det generaliserede begreb ” gren. ” Du kan derefter have et vilkårligt antal niveauer af ” iscenesættelse ” du foretrækker.

Svar

Med de fleste andre versionskontrolsystemer er der 2 steder at gem data: din arbejdskopi (de mapper / filer, du bruger i øjeblikket) og datalageret (hvor versionskontrollen bestemmer, hvordan dine ændringer skal pakkes og gemmes). I Git er der en tredje mulighed: iscenesættelsesområdet (eller indekset). Det er dybest set en ladestation, hvor du kan bestemme, hvilke ændringer der sendes væk.

kilde: http://gitready.com/beginner/2009/01/18/the-staging-area.html

Kommentarer

  • dette synes ikke ‘ at tilføje noget væsentligt i forhold til tidligere 6 svar
  • Det nævnes indeks. Og henvisninger til en meget grundig artikel. Opstemning. BTW, nogle svar ovenfor er kun vittigheder.

Svar

Min forståelse er, antag at jeg udvikler login-funktion og krævede 5 trin i træk for at gennemføre. Så her iscenesættelse hjælper dig med at arbejde på trin som
færdig med trin 1 trin det.
færdig med trin 2, nu er trin 1 og trin 2 begge rigtige trin det.
rod med trin 3 nej problem checkout seneste iscenesatte trin, der er trin 2 – på samme måde, når du er færdig med alle 5 trin, hvilket betyder, at funktionen er komplet, skal du nu udføre commit.

Kommentarer

  • dette ser ikke ‘ ud til at tilføje noget væsentligt i forhold til punkter, der er fremsat og forklaret tidligere 9 svar
  • ja du har ret, jeg prøvede bare at gøre forklaringen enkel og sød
  • Og hvad jeg har lyst til at bruge dette koncept praktisk forsøgte jeg at forklare det
  • overvej at tage et kig på diskussionen her: Er andet TL; DR-svar acceptabelt? (FWIW sammenlignet med tidligere svar denne ‘ ser ikke enkel eller sød ud for mig)
  • tak sir, jeg har et spørgsmål at stille. Jeg er stødt på mange svar, og de fleste af dem er for komplekse, ja de er korrekte, men vanskelige at fordøje på én gang, jeg tror, at hvis du ikke kan ‘ t forklare noget på en enkel måde, så har ikke lært det ordentligt eller ved ikke ‘ hvordan det skal bruges. Så er det dårligt nu at sætte resumé eller enkel måde at svare på ??

Skriv et svar

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