Sådan deler du dit arbejde på et git remote repository

Del dit lokale arbejde med teamet på et eksternt lager, lær også at administrere det, mens du sporer ændringerne, og bliv synkroniseret.

Dit arbejde tilføjer mere værdi, når det offentliggøres og deles med verden (eller dit team) !!!

Kom godt i gang

som du ved, er det mest populære versioneringsværktøj, der bruges i dag til butik , spore og version enhver form for data .
Nogle af de vigtigste funktioner i git er dens hastighed , distribueret natur, sikkerhed smertefri forgrening og fletning sammen med samarbejde arbejde blandt flere bidragydere.

Start vores diskussion herfra, lad os fokusere på, hvordan git hjælper dig med at samarbejde og del dit arbejde med jævnaldrende, så alle kan arbejde på den samme kode samtidigt uden at ødelægge hinandens data.
Det er her, begrebet fjernopbevaringssteder komme ind i billedet.
Jeg antager, at du har mestret kunsten at fra din arbejdsmappe (filsystem) til Iscenesættelsesområde og endelig forpligte det til din lokalt arkiv (database).

Dette inspirerer os til at skubbe vores data til det næste niveau 'Remote repo' for at offentliggøre det på et remote repository.



Er mine data ikke allerede gemt i en git-database?

Ja det er! Som angivet i nedenstående diagram er dine data dog stadig inde på lokal database efter dig begå det og ikke delt med dine kolleger endnu.
4-lags arkitektur
Denne artikel udfylder hullet mellem afhentning af vores data fra din lokalt arkiv og tage det til det næste lag kaldet fjernopbevaringssted .



Hvad er et eksternt lager

En database med indsamlede oplysninger gemt på et sted, der kan være delt med dine holdkammerater ved at give dem adgang .
Det er ideelt hostet på en Sky eller på en server (lokal eller ekstern) på internettet eller dit lokale netværk.
Et eksternt lager er ligesom dit lokale git-arkiv, bortset fra at det generelt erklæres som et blottet lager, så for ikke at have en arbejdskopi som din lokale.
Dette gøres for at begrænse de direkte ændringer, der foretages på fjernlageret.

Bare arkiv koncept er en ekstra fordel for et eksternt lager at beholde det beskyttet og bruges til det eneste formål at dele koden mellem teammedlemmer.
Dette opnås ved at erklære fjernlageret som blottet ved at bruge '--lige'Flag på tidspunktet for initialisering af det som et git-arkiv.
Ved at gøre dette oprettes din repo med git-metadata eller med andre ord git-objekter, der er gemt i det skjulte '.git' -katalog alene, og ingen arbejdskopi er tilgængelig for nogen, der direkte kan tilføje data.
Kommando:git init - kun.

Med dette i tankerne skal vi se flere måder at styre en ekstern repo på, og hvordan synkroniserer vi vores lokale arbejde med fjernbetjeningen.



Opret et eksternt lager

Først og fremmest skal du beslutte dig for et sted, du vil placere din eksterne repo på.
Der er et par populære skybaserede git-hosting-arkiver som - GitLab , BitBucket , GitHub , Perforce og CloudForge for at nævne et par stykker.
I dette indlæg overvejer jeg GitHub, da dette er stedet, hvor jeg først begyndte at opbevare mine git-arkiver. For at begynde med er alt hvad du skal gøre, at logge på en GitHub-konto og derefter Opret et nyt lager , dette skaber en URL, der peger på denne eksterne repo.


Git understøtter ssh-, git-, http- og https-protokoller til adressering af en URL-adresse til lageret.

Alternativt kan du også placere dit projekt et andet sted siger en Linux-server efter nedenstående kommandoer-
cd $ HJEM
mkdir remote_repo
cd remote_repo
git init - kun.

Fastgør fjernbetjeningen til din lokale maskine

Vedhæftning af en fjernbetjening til din arbejdskopi betyder simpelthen at oprette en pointerreferencehåndterer til fjernbetjeningen eller simpelthen kaldet en “ fjernhandler '.
Lad os springe til mit projekt, som jeg vil udgive -cd læreFjernbetjeninger
Syntaks:git remote add
Kommando:git remote tilføj oprindelse https://github.com/divyabhushan/learnRemotes.git

'Oprindelse er Standard referencenavn for fjernhandleren. ” (fjernnavn skal være et relevant navn)
Lad os se om det fungerede ved hjælp af kommandoen:git fjernbetjening

Det gjorde :)

Udskriv den eksterne URL såvel sammen med navnet:
git fjernbetjening -v

Godt klaret! Du er klar til at etablere en forbindelse til dit eksterne lager fra din lokale arbejdsmappe.

Tid til at offentliggøre

Syntaks:git push - alle --tags[-u | - set-upstream]
Kommando:git push oprindelsesmester

Så du læser dette som “Skub forskellen mellem forpligtelser til oprindelse fra lokal mester” .

Hvis du tjekker din GitHub-konto, skal dine lokale forpligtelser (data) vises der-



Sporingsgrene

Så du har med succes offentliggjort dit arbejde på fjernlageret.
Det er dog vigtigt, at du opretter din lokale filial til spore ændringerne på den eksterne gren automatisk.
Brug '- set-upstreameller-u'Flag sammen med kommandoen' git push '
Kommando:git push -u oprindelsesmester

farvekodede grene


Lad os yderligere oprette en ny forpligtelse til 'master'-grenen og kontrollere, hvordan git registrerer det-
Kommando:git-status


Vis sporingsgrene i detaljeret tilstand
Kommando:git gren -vv


Derfor er der hver gang en forskel i forpligtelser mellem dit lokale og det eksterne lager på den sporede gren, Git giver dig besked.
Er det ikke sejt !!!

informatica tutorial for begyndere pdf

Hvordan ville andre oprette forbindelse til din fjernbetjening?

Det er et stykke kage, når du klon et eksternt lager !!!

Så kloning fra et eksternt lager gør to ting først, din fjernreference tilføjes automatisk, og den anden standard afdeling er indstillet til spore fjerntliggende gren automatisk.

Trin 1: Klon din eksterne repo som en anden bruger-
Kommando:git klon https://github.com/divyabhushan/learnRemotes.git udvikler2
cd-udvikler2

Trin 2: Vis fjernbetjeningen og dens url
Kommando:git fjernbetjening -v


Trin 3: Liste over sporingsgrene
Kommando:git gren -vv


Sjovet begynder, når 'developer2' starter sit eget arbejde og skubber til fjernbetjeningen.

Du kan oprette forbindelse og bidrage til mere end en fjernbetjening lager fra en enkelt projekt .

Se fjerntliggende grene

Kommando:git gren -r


Brug muligheden '-a' til at udskrive både lokale og eksterne grene, prøv det i din lokale repo efter at have oprettet få lokale grene.

Hvordan andre bidrager til din fjernbetjening?

Første opsætning
Developer2 beslutter at ændre et par ting som:
til. skab en ny 'funktion' fra den seneste forpligtelse til 'master'-grenen og lav en ny forpligtelse på 'feature' gren
Kommandoer:
git checkout -b funktion
ekko 'funktionsforbedringer'> feature.txt
git add. && git commit -m 'enhedsforbedringer'

b. skab en anden 'feature2'-gren end en ældre forpligtelse til' master'-grenen
Kommandoer:
git checkout -b funktion2 95651fb
ekko 'feature2 tilføjet'> feature2.txt
git add. && git commit -m 'Tilføjelse af funktion2 ændringer'

Lad os visualisere filialerne på Developer2-maskinen sammen med sporingsoplysningerne:

Som du sikkert har bemærket, er de nye grene ikke indstillet til at spore fjerntliggende grene.

Skubbe ændringer til fjernbetjening
Lad mig først skubbe 'feature'-grenen til fjernbetjening med' –set-upstream eller -u 'flag
Kommando:git push -u oprindelsesfunktion




En ny gren oprettes på fjernbetjeningen, hvis den ikke allerede findes !!!

I dette øjeblik skal du liste de eksterne grene med kommandoen: ‘git branch -r’




En anden måde at spore fjerntliggende gren på
Lad os desuden indstille 'feature2'-grenen til også at pege på den samme' feature '-gren på fjernbetjeningen
Kommando:git branch --set-upstream-to = origin / feature-funktion2



farvekodet gren


Et hurtigt tip: Du kan udelade det lokale filialnavn, hvis du allerede er i den filial, med andre ord, den lokale filial er allerede tjekket ud.

List igen grenene i den detaljerede tilstand igen, kommando:git gren -vv



Bemærk, at både lokale filialer 'funktion' og 'funktion2' peger på den samme fjernfilial 'funktion'.

Forbliver synkroniseret med fjernbetjeningen - hent, træk og skub

Lad os overveje den del, hvor fjerntliggende gren du sporer er allerede blevet opdateret, hvad så?
En simpel 'git-status'Eller en'git checkout'Eller endda'git gren -vv'Kommando advarer os om sådan en mismatch-



'Developer2' skal først opdatere de lokale referencer og objekter (' git-hentning ') Og flet derefter de eksterne og lokale ændringer (' git merge ').
Interessant kan du erstatte disse to kommandoer med en enkelt 'git pull' kommando.
Syntaks: trække

–For ikke-sporet gren
Syntaks: git pull [:]
Kommando:git pull origin funktion: feature2

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




=> I praksis kan der opstå konflikter på dette tidspunkt, når du trækker fra fjernbetjeningen for at gøre det nemmere, har jeg genereret en ændringsforpligtelse uden konflikt.

Efter 'developer2' pull (hent og flet) skal de seneste fjernændringer nu offentliggøre sit eget arbejde-
Kommando:git push origin HEAD: funktion
Bemærk: opstrøms gren 'funktion' matcher ikke det lokale filial 'funktion2' navn, du skal angive det eksplicit

hvordan man konverterer til binær i python



Påmindelse : 'HEAD' er den seneste forpligtelse til den lokale 'feature2' gren.

Hvornår skal man bruge 'git fetch'?
På tidspunkter, hvor du har behov for bare at opdatere din referencehoveder uden faktisk at downloade (trække) fra fjernbetjeningen.
Eller når de eksterne grene er blevet ændret / slettet ved opdatering, skal du køre hentekommandoen med '- beskære' mulighed.
Som en bedste praksis skal du køre kommandoen 'git fetch' hver gang du begynder at arbejde på din lokale repo.

Fjernstyring

Endelig vil du gerne udføre nogle husholdningsopgaver såsom omdøbning eller fjernelse af fjernbetjeninger og grene.
Disse er lige så vigtige som de tidligere kommandoer.

Omdøb fjernbetjeningen

Syntaks:git fjernbetegnelse
Kommando:git fjernbetjening omdøbe snv_repo svn
Overvej f.eks. En projektleder tilknyttet 3 projekter-


Slet fjernreference

Antag, at du ikke mere synkroniseres med et eksternt lager, du vil sandsynligvis slette markørreferencen til det.
Dette påvirker dog ikke fjernlageret og andres arbejde.

Syntaks:fjern fjernelse af git
Kommando:git fjernbetjening fjern proj1


Hvad hvis du havde en lokal filial til at spore en gren fra det fjernede 'proj1' lager?
Nå, din lokal filial (og dermed arbejdet) er sikker og stadig til stede, bare dens fjernsporingsreference og konfiguration indstillinger vil være automatisk fjernet

Slet fjernfilial

Siger du ved en fejltagelse skubbet din personlig groft arbejde med en gren til fjernbetjeningen men ønsker ikke, at andre skal kontrollere det endnu -
Fjern 'unfinishedWork'-grenen fra fjernbetjeningen' svn'-
Kommando:git gren -vv# Vis fjernsporingsgrene



Syntaks:git push - slet
Kommando:git push - slet svn unfinishedWork


Afvikling

Med dette kommer vi til slutningen af ​​denne artikel. Hvis du fandt dette “ Vejledning ”Relevant, tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringstræningskurset hjælper elever med at få ekspertise i forskellige DevOps-processer og -værktøjer såsom Puppet, Jenkins, Nagios og GIT til automatisering af flere trin i SDLC.