Nii jagate oma tööd git-kaughoidlas



Jagage oma kohalikku tööd meeskonnaga kaughoidlas, õppige ka muudatusi jälgides seda haldama ja püsige sünkroonis.

Teie töö lisab rohkem väärtust, kui see avaldatakse ja seda jagatakse maailmale (või teie meeskonnale) !!!

Alustamine

Mine , nagu teate, on tänapäeval kõige populaarsem versioonitööriist pood , rada ja versioon igasugune andmed .
Mõned giti põhijooned on selle kiirus , laiali loodus, turvalisus , valutu hargnemine ja ühendamine koos koostööl töö mitme kaastöötaja vahel.

Alustades meie arutelu siit, keskendugem sellele, kuidas git teid aitab tegema koostööd ja jagage oma tööd eakaaslastega, et kõik saaksid töötada sama koodiga samaaegselt, ilma et teineteise andmeid rikutaks.
See on koht, kus mõiste kaughoidlad tulge pildile.
Eeldan, et olete selle kunsti valdanud sinult töökataloog (failisüsteem) Lavastusala ja lõpuks selle endale pühendada kohalik hoidla (andmebaas).

See inspireerib meid oma andmed kaughoidlasse avaldamiseks viima järgmisele tasemele „Kaugrepo”.

Kas minu andmed pole juba git-andmebaasis salvestatud?

Jah see on! Kuid nagu on näidatud alloleval skeemil, on teie andmed endiselt kohalik andmebaas pärast sind pühenduma seda ja seda pole veel kolleegidega jagatud.
4-astmeline arhitektuur
See artikkel täidab tühimiku meie andmete hankimise vahel teie lehelt kohalik hoidla ja viimine järgmisele kihile, mida nimetatakse kaughoidla .





Mis on kaughoidla

Kogutud teabe andmebaas, mis on salvestatud asukohta, mis võib olla jagatud meeskonnakaaslastega neile kinkides juurdepääs .
Ideaalis on see hostitud aadressil pilv või a server (kohalik või kaugjuhtimine) Internetis või teie kohalikus võrgus.
Kaughoidla on täpselt nagu teie kohalik git-hoidla, välja arvatud see, et see on tavaliselt deklareeritud tühja hoidlana, nii et selleks ei oleks teie kohalikku töökoopiat.
Seda tehakse kaughoidlas tehtud otseste muudatuste piiramiseks.

Paljas hoidla kontseptsioon on kaughoidla jaoks selle säilitamiseks täiendav eelis kaitstud ning seda saab kasutada ainult koodi jagamiseks meeskonnaliikmete vahel.
See saavutatakse kaughoidla paljaks kuulutamisega, kasutades- just‘Lipp selle git-hoidlana initsialiseerimise ajal.
Nii tehes luuakse teie repo ainult git-metaandmete või teisisõnu git-objektidega, mis on salvestatud ainult peidetud kataloogi .git alla ja kellelgi pole ühtegi töökoopiat andmete otseseks lisamiseks saadaval.
Käsk:git init - paljas.

Seda silmas pidades näeme edasiliikumisel rohkem võimalusi kaughalduse haldamiseks ja kuidas sünkroniseerida kohalikku tööd puldiga.



Looge kaughoidla

Kõigepealt peate otsustama asukoha, kuhu soovite oma kaugrepo paigutada.
On üsna palju populaarseid pilvepõhiseid git-majutushoidlaid, näiteks - GitLab , BitBucket , GitHub , Jõud ja CloudForge kui nimetada vaid mõnda.
Selles postituses kaalun GitHubi, kuna see on koht, kus hakkasin esimest korda oma git-hoidlaid hoidma. Alustuseks peate vaid logima sisse GitHubi kontole ja seejärel luua uus hoidla , loob see sellele kaugrepole viitava URL-i.


Git toetab hoidla URL-i aadresse ssh, git, http ja https.

Teise võimalusena võite oma projekti paigutada ka mujale, näiteks a Linuxi server järgides alltoodud käske
cd $ KODU
mkdir remote_repo
cd remote_repo
git init - paljas.

Kinnitage pult kohaliku masina külge

Puldi kinnitamine töökoopiale tähendab lihtsalt a loomist kursori viitehaldur puldi jaoks või nimetatakse lihtsalt kaugkäitleja '.
Hüppame minu projekti juurde, mille ma tahan avaldada -cd learnRemotes
Süntaks:git remote add
Käsk:git remote add origin päritolu https://github.com/divyabhushan/learnRemotes.git

“Päritolu on vaikimisi kaugkäitleja viitenimi. ' (kaugnimi peab olema mõni asjakohane nimi)
Vaatame, kas see õnnestus, kasutades käsku:git pult

See tegi :)

Printige ka kaug-URL koos nimega:
git pult -v

Hästi tehtud! Teil on kõik valmis ühenduse loomiseks kaughoidlaga kohalikust töökataloogist.

Avaldamise aeg

Süntaks:git push - kõik - sildid[-u | --set-upstream
Käsk:git push originaali kapten

Nii et lugesite seda järgmiselt 'Lükake päritolukohustuste erinevus kohalikult kaptenilt' .

Kui kontrollite oma GitHubi kontot, tuleb seal kuvada teie kohalikud kohustused (andmed).



Filiaalide jälgimine

Niisiis, olete oma töö edukalt kaughoidlas avaldanud.
Siiski on oluline, et asutaksite oma kohaliku filiaali rada muudatused kaugharus automaatselt.
Kasuta '- ülesvooluvõi-u‘Lipp koos käsuga‘ git push ’
Käsk:git push -u päritolumeister

värvikoodiga oksad


Loome täiendavalt uue kohustuse „peamises” harus ja kontrollime, kuidas git selle tuvastab -
Käsk:git staatus


Kuva jälgimisharud üksikasjalikus režiimis
Käsk:git haru -vv


Seega on iga kord jälgitava haru kohaliku ja kaughoidla vahel erinevusi kohustustes, Git annab sellest teada.
Kas pole nii lahe !!!

arvu tõstmine javas võimule

Kuidas saaksid teised teie puldiga ühendust luua?

See on käkitegu, kui sa kloon kaughoidla !!!

Niisiis, kaughoidlast kloonimine teeb kõigepealt 2 asja, teie kaugviide lisatakse automaatselt ja teine ​​vaikimisi haru on seatud väärtusele rada kaugharu automaatselt.

Samm 1: Kloonige oma kaugrepo teise kasutajana -
Käsk:giti kloon https://github.com/divyabhushan/learnRemotes.git developer2
cd arendaja2

2. samm: Kuva kaugjuhtimispult ja selle URL
Käsk:git pult -v


3. samm: Lisage jälgimisharud
Käsk:git haru -vv


Lõbu algab siis, kui ‘arendaja2’ alustab oma tööd ja lükkab kaugjuhtimispuldi.

Saate luua ühenduse ja panustada rohkem kui üks pult hoidla a üksikprojekt .

Vaadake kaugharusid

Käsk:git haru -r


Nii kohalike kui ka kaugharude printimiseks kasutage valikut ‘-a’, proovige seda pärast kohalike harude loomist oma kohalikus repos.

Kuidas teised teie kaugjuhtimispuldi panustavad?

Esmane seadistamine
Arendaja2 otsustab muuta järgmist:
kuni. Loo uusim 'funktsioon' viimasest tegevusest 'master' harus ja tee a uus pühenduma ‘funktsioon’ harul
Käsud:
git checkout -b funktsioon
kaja 'funktsioonide täiustused'> feature.txt
git lisada. && git toime -m 'funktsioonide täiustused'

b. Loo vanemast erinev ‘feature2’ haru pühendub ‘master’ harule
Käsud:
git checkout -b funktsioon2 95651fb
echo 'feature2 lisatud'> feature2.txt
git lisada. && git engel -m 'funktsioon2 muudatuste lisamine'

Visualiseerime harud arendaja2 masinas koos jälgimisteabega.

Nagu te kindlasti märkasite, pole uued harud kaugharude jälgimiseks loodud.

Lükates muudatused kaugjuhtimispuldile
Kõigepealt lubage mul lükata ‘funktsiooni’ haru kaugjuhtimiseks lipuga –set-upstream või -u
Käsk:git push -u päritolu funktsioon




Pultile luuakse uus haru, kui seda veel pole !!!

Sel hetkel loetlege kaugharud käsuga: ’git branch -r’




Teine võimalus kaugharu jälgimiseks
Lisaks seadkem haru ‘feature2’ osutama ka puldi samale ‘feature’ harule
Käsk:git branch - set-upstream-to = origin / feature feature2



värvikoodiga haru


Kiire näpunäide: võite kohaliku haru nime välja jätta, kui olete juba selles harus, teisisõnu, kohalik haru on juba välja registreeritud.

Lisage harud veel kord verbose režiimis, käsk:git haru -vv



Pange tähele, et mõlemad kohalikud harud „funktsioon” ja „funktsioon 2” osutavad samale kaugharu „funktsioonile”.

Puldiga sünkroonis püsimine - tooge, tõmmake ja lükake

Vaatleme seda osa, kus kaugharu teie jälgimist on juba värskendatud, mis siis saab?
Lihtnegit staatusVõigit kassasse'Või isegi'git haru -vv‘Käsk hoiatab meid sellise mittevastavusega-



‘Developer2’ peab kõigepealt värskendama kohalikke viiteid ja objekte ( git tooma ‘) Ning seejärel liidetakse kaug- ja lokaalsed muudatused (‘ git merge ’).
Huvitav on see, et saate need kaks käsku asendada ühe käsuga 'git pull'.
Süntaks:mine tõmba

–Jälgimata haru jaoks
Süntaks: git pull [:]
Käsk:git pull originaali funktsioon: tunnus2

–Raamatud haru jaoks
Süntaks: git pull
Käsk:git pull




=> Praktikas võib selles etapis tekkida konflikte, kui valite lihtsuse huvides kaugjuhtimispuldi, olen muutnud konfliktideta muudatusi.

Pärast arendaja2 tõmbamist (tõmbamine ja ühendamine) peavad kaugemad muudatused nüüd avaldama omaenda
Käsk:git push originaal HEAD: funktsioon
Märkus: ülesvoolu haru „funktsioon” ei ühti kohaliku haru „funktsioon2” nimega, peate selle selgesõnaliselt esitama

kuidas õppida visuaalset stuudiot



Meeldetuletus : ‘HEAD’ on kohalikus ‘feature2’ harus viimane kohustus.

Millal kasutada ‘git fetch’?
Aegadel, kui teil on vaja oma rakendust lihtsalt värskendada tugipead ilma kaugjuhtimispuldist alla laadimata (tõmmates).
Või kui kaugharud on värskendamisel muudetud / kustutatud, peate käivitama käsu fetch '--kuivatatud ploom‘Variant.
Parima tavana peate käivitama käsu git fetch iga kord, kui asute oma kohaliku repoga tegelema.

Kaugjuhtimine

Lõpuks võiksite teha mõningaid majapidamistöid, näiteks pultide ja harude ümbernimetamine või eemaldamine.
Need on sama olulised kui eelmised käsud.

Nimetage kaugjuhtimispult ümber

Süntaks:git kaugnimetamine
Käsk:git kaug nimetada snv_repo svn
Näiteks kaaluge 3 projektiga seotud projektijuhti -


Kustuta kaugviide

Oletame, et te ei sünkroonita enam kaughoidlat, kustutate tõenäoliselt sellele osutava viite.
Kuid see ei mõjuta kaughoidlat ega teiste töid.

Süntaks:git eemaldage kaugjuhtimispult
Käsk:git kaugjuhtimispuldi eemaldamine1


Mis oleks, kui teil oleks kohalik haru määratud eemaldatud ‘proj1’ hoidlast haru jälgima?
Noh, teie kohalik haru (ja seega ka töö) on ohutu ja endiselt kohal, lihtsalt selle oma kaugjälgimise viide ja seadistamine seaded on automaatselt eemaldatud

Kustuta kaugharu

Ütle sulle kogemata surus oma isiklik töötlemata töö a hargneb kaugjuhtimispuldi külge aga ei taha, et teised seda veel kontrolliksid -
Eemaldage kaugjuhtimispuldilt ‘svn’ haru ‘unfinishedWork’ -
Käsk:git haru -vv# Loetlege kaugseire harud



Süntaks:git push - kustuta
Käsk:git push - kustuta svn lõpetamataTöö


Likvideerimine

Sellega jõuame selle artikli lõpuni. Kui leidsite selle Õpetus ”Asjakohane, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka DevOpsi sertifitseerimiskoolitus aitab õppijatel omandada teadmisi mitmesuguste DevOpsi protsesside ja tööriistade, näiteks Nukuteabe, Jenkinsi, Nagiosi ja GIT-i kohta SDLC mitmete sammude automatiseerimiseks.