Din Real-Verden Git Cheat Sheet

Den Git versjonskontrollsystem er ganske fin, en nyttig utviklingen fra Subversion, CVS, og andre eldre versjonskontrollsystemer. Det er spesielt sterk for distribuert utvikling, som du kan arbeide frakoblet og ikke være avhengig av tilgjengeligheten av en sentral server.

Det er også mer komplisert enn eldre VCS, og erfarne brukere har sine favoritt måter å gjøre ting som de mener bør være favoritter også, selv om de ikke kan forklare dem veldig godt. En av de viktigste tingene å forstå er hvilke kommandoer som er for eksterne repositories, og hvilke som er for din lokale arbeid.

Git er grundig dokumentert, slik at du alltid kan finne autoritative svar. Alltid se i dokumentasjonen før du gjør et websøk fordi det er raskere og du får bedre svar.

Kunde et eksisterende prosjekt

Den mest vanlige bruken-sak er å bli et eksisterende prosjekt og å bli kastet i å synke eller svømme. Ditt første skritt, selvsagt, er å installere Git. De ulike Linux-distribusjoner har pakker for kjerne Git, de Git man-sider og verktøy som Gitk, den Git visuelle verktøy kit. (GitHub brukere kan være interessert i Begynnelsen Git og Github for Linux-brukere.)

Deretter kjører git config å sette opp ditt nærmiljø med repo legitimasjon, standard editor, passord caching timeout, og annen nyttig tids sparere

Deretter oppretter en katalog for de lokale repos og klone prosjektet inn i det, ved hjelp av den faktiske adressen til den eksterne repo, selvfølgelig.

 $ mkdir prosjektet $ cd prosjekt $ git clone https: //[remote-repo-adresse] .git 

Ta noen minutter til å se på dine repo-filer. Alt er der i klartekst. Git lagrer logger, begår meldinger og hashes, grener, og alt annet som trengs for å spore koden i .git katalog.

Din første Edits

Nøkkelen til Git lykke er å gjøre arbeidet ditt på en gren. Du kan lage så mange grener som du liker, og mangle dem til din hjertens lyst uten å gjøre et rot av oppstrøms grener. Standard for de fleste prosjekter er å jobbe fra master grenen. La oss bruke den fiktive "coolproject" som et eksempel. Lag din nye jobber gren som dette:

 $ cd coolproject $ git checkout mester $ git pull $ git checkout -b workbranch 

Det du gjorde: du endret til prosjektet katalog, endret til master gren, tok det opp-to-date fra fjernlager, og skapt den nye grenen "workbranch" fra mester. Alle kommandoene er lokale unntak av git pull
.

Nå kan du jobbe i "workbranch" alt du vil uten å plage andres arbeid. Til enhver tid kan du kjøre git status
å se hvilke filer som har forandret seg og hva gren du er på:

 $ git statusOn avdelings workbranchChanges ikke iscenesatt for innsending: (bruk "git legge /rm ... "for å oppdatere hva som vil være forpliktet) (bruk" git checkout - ... "for å forkaste endringer i arbeidsmappen) endret: api.c slettet: routes.cno endringer legges forplikte (bruk" git legge til "og /eller "git commit a") 

git status
gir mange nyttige tips, slik at du kan kartlegge den til en hurtigtast. De to filer, api.c Hotell og routes.c
, er uthevet i rødt for å vise at de ikke har blitt lagt til noen begår enda. Dette betyr at de er tilgjengelige for noen gren, så hvis du er i feil man ved en feil kan du nå endre til den rette. Du kan legge til alle endringer i begår med det første kommando, eller navn bestemte filer med andre kommandoen:

 $ git legge --Alle $ git legge [filnavn eller filnavn, plass avgrenset] 

Nå når du kjører git status
filnavnene er grønne for å vise at de har blitt lagt til din arbeidsgren. Du kan slette filer fra arbeids gren uten å slette dem fra andre grener, som dette eksempelet bruker api.c Bilde:

 $ git rm api.c 

Hva om du ombestemmer deg og ønsker å forkaste alle endringer i en fil, eller gjenopprette en slettet fil? Hvis du vil gjenopprette api.c
kjøre disse to kommandoene:

 $ reset git HEAD api.c $ git checkout api.c 

Merk at siden du begynte å jobbe i "workbranch" alle kommandoene har vært lokale. Du kan gjøre det meste av arbeidet frakoblet, og koble bare å trekke oppdateringer og presse endringer. Nå la oss kalle vårt arbeid i "workbranch" gjort og presse våre forandringer til den eksterne serveren. Dette er to trinn: først legge inn forandringene til din lokale grenen med en hyggelig melding å fortelle hva du gjorde, skyv den til den eksterne serveren:

 $ git commit a "oppdateringer -m og endringer og kul kode stuff "$ git push-opprinnelse workbranch 

Nå kan ny gren er på den eksterne serveren venter på å bli slått sammen til mester. I de fleste prosjekter vil du være på et offentlig Git host som Github, Bitbucket, eller CloudForge, og vil bruke hosting verktøy for å lage en pull forespørsel
. En trekker forespørsel er et varsel om at du ønsker at din begår anmeldt og fusjonert med master gren

List -. Slett Grener

Run git branch
å se grenene på lokale systemer, og git branch -a
å se alle grener på den eksterne serveren. git branch -d [avdelingsnavn]
sletter lokallag, og hvis du får en feilmelding om at det er ikke helt slått sammen, og du er sikker på at du er ferdig med den, kjøre git branch -D [gren name]
.

Angre

Hva om, etter skyve din forplikte seg til den eksterne repo, vil du angre det? Det er et par måter. Du kan gå tilbake hele begå:

 $ git tilbake de4bbc49eab 

Din standard editor vil åpne, slik at du kan skrive en forplikte meldingen og fullføre revert. Hver begå blir et unikt nummer, som du finner ved å kjøre git logge
. Hvis det er en liten feil, så ikke gå tilbake, men fikse det i din lokale arbeids gren, og skyv den til den eksterne arbeids gren.

stashing for Senere

Når du ønsker å forlate uferdig arbeid i en gren og bytte til en annen gren, stash endringene:

 $ git stashSaved arbeidsmappen og peke staten WIP på workbranch: 56cd5d4 Revert "oppdatere gamle filer" HEAD er nå på 56cd5d4 revert "oppdatere gamle filer "

Statusmeldingen vil referere den forrige begå. Du kan se en liste over dine stashes:

 $ git stash liststash @ {0}: WIP på workbranch: 56cd5d4 Revert "oppdatere gamle filer" stash @ {1}: WIP på project1: 1dd87ea begå "fikse skrivefeil og grammatikk "

Når du er klar til å jobbe på stash, velger du den du ønsker som dette:

 $ git stash gjelder stash @ {1} 
Ikke vær redd for å kopiere -Paste

Sjansen for at du vil jobbe med Git veivisere som har alle slags fantastiske og avanserte måter å fikse feil. Ikke vær for stolt til å bruke copy-and-paste; få arbeidet gjort nå, og lære å vise frem din Git trolldom senere. Alle filene i prosjektet depotet er under Git kontroll, så når du leser filene du vil se kun de versjonene av gjeldende gren. Det er ingen skam i å endre til en annen gren, kopiere filer til en ekstern katalog, og deretter endre til din arbeidsgren og kopiere dem der. Det er en rask og sikker måte å løse problemer eller gjøre store endringer raskt.