Slik deler du arbeidet ditt med et git eksternt arkiv



Del ditt lokale arbeid med teamet på et eksternt lager, lær deg også å administrere det mens du sporer endringene og hold deg synkronisert.

Arbeidet ditt gir mer verdi når det blir publisert og delt med verden (eller teamet ditt) !!!

Starter

, som du vet, er det mest populære versjonsverktøyet som brukes i dag til butikk , spor og versjon noen form for data .
Noen av de viktigste funksjonene i git er dens hastighet , distribuert natur, sikkerhet , smertefri forgrening og sammenslåing sammen med samarbeidende arbeide blant flere bidragsytere.

Start vår diskusjon herfra, la oss fokusere på hvordan git hjelper deg samarbeide og del arbeidet ditt med jevnaldrende slik at alle kan jobbe med den samme koden samtidig uten å ødelegge hverandres data.
Det er her konseptet med eksterne lagringssteder komme inn i bildet.
Jeg antar at du har mestret kunsten å fra din arbeidskatalog (filsystem) til Scene område og til slutt forplikte den til din lokalt depot (database).

Dette inspirerer oss til å skyve dataene våre til neste nivå 'Remote repo' for å publisere dem på et eksternt depot.

Er ikke dataene mine allerede lagret i en git-database?

Ja, det er det! Som angitt i diagrammet nedenfor er imidlertid dataene dine fortsatt på lokal database etter deg begå det og ikke delt med kollegene dine ennå.
4-lags arkitektur
Denne artikkelen fyller gapet mellom å hente dataene våre fra din lokalt depot og tar det til neste lag som heter eksternt depot .





Hva er et eksternt depot

En database med samlet informasjon som er lagret på et sted som kan være delt med lagkameratene dine ved å gi dem adgang .
Det er ideelt vert på en Sky eller på en server (lokal eller ekstern) på internett eller ditt lokale nettverk.
Et eksternt depot er akkurat som ditt lokale git-arkiv, bortsett fra at det generelt blir erklært som et tomt arkiv, så for ikke å ha en arbeidskopi som din lokale.
Dette gjøres for å begrense de direkte endringene som er gjort på det eksterne depotet.

Bare arkiv konsept er en ekstra fordel for et eksternt arkiv for å beholde det beskyttet og brukes til det eneste formålet med å dele koden blant teammedlemmene.
Dette oppnås ved å erklære fjernmagasinet for å være blott ved å bruke--bare‘Flagg på tidspunktet for initialisering som et git-arkiv.
Ved å gjøre dette blir repoen din opprettet med git-metadata eller med andre ord git-objekter som er lagret i den skjulte ‘.git’-katalogen alene, og ingen arbeidskopi er tilgjengelig for noen å direkte legge til data.
Kommando:git init --bare.

Med dette i bakhodet vil vi se flere måter å administrere en ekstern repo på, og hvordan synkroniserer vi vårt lokale arbeid med fjernkontrollen.



Opprett et eksternt lager

Først og fremst må du bestemme deg for et sted du vil plassere din eksterne repo på.
Det er ganske mange populære skybaserte git-hosting-arkiver som - GitLab , BitBucket , GitHub , Perforce og CloudForge for å nevne noen.
I dette innlegget vurderer jeg GitHub da dette er stedet jeg først begynte å beholde git-arkivene mine. For å begynne er alt du trenger å gjøre å logge på en GitHub-konto og deretter opprette et nytt depot , dette skaper en URL som peker til denne eksterne repoen.


Git støtter ssh-, git-, http- og https-protokoller for å adressere en URL-adresse.

Alternativt kan du også plassere prosjektet et annet sted si en Linux-server ved å følge kommandoene nedenfor-
cd $ HJEM
mkdir remote_repo
cd remote_repo
git init --bare.

Fest fjernkontrollen til din lokale maskin

Å feste en fjernkontroll til arbeidskopien betyr ganske enkelt å opprette en pekerreferansebehandler for fjernkontrollen eller bare kalt en “ ekstern håndterer '.
La oss hoppe til prosjektet mitt som jeg vil publisere -cd learnFjernkontroller
Syntaks:git remote add
Kommando:git remote legg til opprinnelse https://github.com/divyabhushan/learnRemotes.git

'Opprinnelse er den misligholde referansenavn for den eksterne håndtereren. ” (eksternt navn må være noe relevant navn)
La oss se om det fungerte ved hjelp av kommandoen:git fjernkontroll

Det gjorde det :)

Skriv ut ekstern URL så vel som navnet:
git fjernkontroll -v

Bra gjort! Du er klar med å opprette en forbindelse til det eksterne arkivet fra din lokale arbeidskatalog.

Tid for publisering

Syntaks:git push - alle --merker[-u | - oppstrøms]
Kommando:git push origin master

Så du leser dette som “Skyv forskjellen mellom forpliktelser til opprinnelse fra lokal mester” .

Hvis du sjekker GitHub-kontoen din, må dine lokale forpliktelser (data) vises der-



java hvordan lage en rekke objekter

Sporingsgrener

Så du har vellykket publisert arbeidet ditt på det eksterne depotet.
Det er imidlertid viktig at du setter opp din lokale filial til spor endringene på den eksterne grenen automatisk.
Bruke '- oppstrømseller-u'Flagg sammen med' git push '-kommandoen
Kommando:git push -u origin master

fargekodede grener


La oss videre opprette en ny forpliktelse på 'master' -grenen og verifisere hvordan git oppdager det -
Kommando:git status


Vis sporingsgrenene i detaljert modus
Kommando:git gren -vv


Derfor hver gang det er en forskjell i forpliktelser mellom ditt lokale og eksterne depot på den sporede grenen, vil Git gi deg beskjed.
Er ikke det kult !!!

Hvordan vil andre koble til fjernkontrollen din?

Det er et stykke kake når du klone et eksternt lager !!!

Så, kloning fra et eksternt lager gjør to ting først, din ekstern referanse blir lagt til automatisk, og den andre standardverdien gren er satt til spor ekstern gren automatisk.

Trinn 1: Klone din eksterne repo som en annen bruker-
Kommando:git klone https://github.com/divyabhushan/learnRemotes.git utvikler2
cd-utvikler2

Steg 2: Vis fjernkontrollen og dens url
Kommando:git fjernkontroll -v


Steg 3: Liste over sporingsgrenene
Kommando:git gren -vv


Moroa begynner når ‘developer2’ starter sitt eget arbeid og skyver til fjernkontrollen.

Du kan koble til og bidra til mer enn en fjernkontroll depot fra en enkelt prosjekt .

Se de eksterne grenene

Kommando:git gren -r


Bruk alternativet ‘-a’ til å skrive ut både lokale og eksterne grener, prøv det i din lokale repo etter å ha opprettet få lokale grener.

Hvordan andre bidrar til fjernkontrollen din?

Førstegangs oppsett
Developer2 bestemmer seg for å endre et par ting som:
til. Skape en ny ‘funksjon’ fra siste forpliktelse på ‘master’ -grenen og lag en ny forpliktelse på ‘feature’ gren
Kommandoer:
git checkout -b funksjon
ekko 'funksjonsforbedringer'> feature.txt
git add. && git commit -m 'funksjonsforbedringer'

b. Skape en annen 'feature2'-gren enn en eldre forpliktelse på' master '-grenen
Kommandoer:
git checkout -b-funksjon2 95651fb
ekko 'feature2 lagt til'> feature2.txt
git add. && git commit -m 'Legge til funksjon2 endringer'

La oss visualisere grenene på utvikler2-maskinen sammen med sporingsinformasjonen:

Som du sikkert har lagt merke til, er de nye grenene ikke satt opp for å spore de eksterne grenene.

Skyve endringer til fjernkontrollen
La meg først skyve 'funksjonen' -grenen til fjernkontroll med '–set-upstream eller -u' flagg
Kommando:git push -u opprinnelsesfunksjon




En ny gren vil bli opprettet på fjernkontrollen, hvis den ikke allerede eksisterer !!!

I dette øyeblikket lister du opp de eksterne grenene med kommandoen: ‘git branch -r’




En annen måte å spore ekstern gren på
Videre, la oss sette 'feature2'-grenen også til å peke på den samme' feature '-grenen på fjernkontrollen
Kommando:git branch --set-upstream-to = origin / feature feature2



fargekodet gren


Et raskt tips: Du kan utelate navnet på den lokale avdelingen hvis du allerede er i den filialen, med andre ord, den lokale avdelingen er allerede sjekket ut.

List opp grenene i detaljert modus igjen, kommando:git gren -vv



Legg merke til at både lokale filialer 'funksjon' og 'funksjon2' peker til den samme eksterne filialen 'funksjonen'.

Forblir synkronisert med fjernkontrollen - hent, trekk og skyv

La oss vurdere den delen der ekstern gren du sporer er allerede oppdatert, hva da?
En enkel 'git status‘Eller en‘git kassa‘Eller til og med‘git gren -vv‘Kommando advarer oss med en slik uoverensstemmelse-



‘Developer2’ må først oppdatere lokale referanser og objekter (‘ git-henting ‘) Og slå deretter sammen de eksterne og lokale endringene (‘ git merge ’).
Interessant, du kan erstatte disse to kommandoene med en enkelt ‘git pull’-kommando.
Syntaks: dra

–For usporet gren
Syntaks: git pull [:]
Kommando:git pull origin-funksjon: feature2

–For sporet gren
Syntaks: git pull
Kommando:git pull

hvordan du skriver en tostring-metode i java




=> I praksis kan det oppstå konflikter på dette stadiet når du trekker fra fjernkontrollen for enkelhets skyld, jeg har generert en forandringsforandring uten konflikt.

Etter 'developer2' pull (hente og slå sammen) må de fjerneste siste endringene nå publisere sitt eget arbeid-
Kommando:git push origin HEAD: funksjon
Merk: Oppstrøms filialfunksjon samsvarer ikke med lokalfilialens navn, du må oppgi det eksplisitt



Påminnelse : ‘HEAD’ er den siste forpliktelsen til den lokale ‘feature2’-grenen.

Når skal jeg bruke ‘git fetch’?
Noen ganger når du trenger å bare oppdatere referansehoder uten å laste ned (trekke) fra fjernkontrollen.
Eller når de eksterne grenene er endret / slettet ved oppdatering, må du kjøre hentekommandoen med '--sviske‘Alternativ.
Som en best praksis må du kjøre kommandoen ‘git fetch’ hver gang du begynner å jobbe med din lokale repo.

Fjernstyring

Til slutt vil du utføre noen rengjøringsoppgaver som å gi nytt navn eller fjerne fjernkontroller og grener.
Disse er like viktige som de forrige kommandoene.

Gi fjernkontrollen nytt navn

Syntaks:git eksternt navn
Kommando:git eksternt navn på snv_repo svn
Tenk for eksempel på en prosjektleder tilknyttet tre prosjekter-

Fibonacci c ++ kode


Slett ekstern referanse

Anta at du ikke lenger synkroniserer med et eksternt lager, det er sannsynlig at du vil slette pekereferansen til den.
Dette kommer imidlertid ikke til å påvirke det eksterne depotet og andres arbeid.

Syntaks:fjern fjernkontrollen
Kommando:git fjernkontroll fjern proj1


Hva om du hadde en lokal filial satt til å spore en filial fra det fjernede ‘proj1’ depotet?
Vel, din lokalfilial (og derav arbeidet) er sikker og fremdeles til stede, bare dens ekstern sporingsreferanse og konfigurasjon innstillingene blir automatisk fjernet

Slett ekstern gren

Si du ved et uhell dyttet din personlig grovt arbeid på en gren til fjernkontrollen men vil ikke at andre skal sjekke det ennå -
Fjern 'unfinishedWork'-grenen fra fjernkontrollen' svn'-
Kommando:git gren -vv#List opp avdelingene for fjernsporing



Syntaks:git push - slett
Kommando:git push - slett svn uferdigArbeid


Ende opp

Med dette kommer vi til en slutt på denne artikkelen. Hvis du fant dette “ Opplæringen ' relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edureka DevOps Certification Training-kurset hjelper elever å få ekspertise i forskjellige DevOps-prosesser og verktøy som Puppet, Jenkins, Nagios og GIT for å automatisere flere trinn i SDLC.