Ito ay kung paano mo ibinabahagi ang iyong trabaho sa isang git remote repository



Ibahagi ang iyong lokal na gawain sa koponan sa isang remote na imbakan, alamin din itong pamahalaan habang sinusubaybayan ang mga pagbabago at manatiling naka-synch.

Ang iyong trabaho ay nagdaragdag ng higit na halaga kapag nai-publish at ibinahagi sa mundo (o iyong koponan) !!!

Nagsisimula

Punta ka na , tulad ng alam mo, ay ang pinakatanyag na tool sa pag-bersyon na ginagamit ngayon upang tindahan , subaybayan at bersyon anumang uri ng data .
Ang ilan sa mga pangunahing tampok ng git ay ito bilis , ipinamahagi kalikasan, seguridad , walang sakit sumasanga at nagsasama kasama ni nagtutulungan magtrabaho kasama ng maraming mga nag-ambag.

Simula sa aming talakayan mula dito, mag-focus kami sa kung paano ka matutulungan ng git magtulungan at ibahagi ang iyong trabaho sa mga kapantay upang ang lahat ay maaaring gumana sa parehong code nang sabay nang hindi nasisira ang data ng bawat isa.
Dito nagmula ang konsepto ng malayuang mga repository dumating sa larawan.
Ipinapalagay ko na pinagkadalubhasaan mo ang sining ng mula sa iyong nagtatrabaho direktoryo (filesystem) sa Pananatili ng lugar at sa wakas ay nakatuon ito sa iyong lokal na imbakan (database).

Pinasisigla kami na itulak ang aming data sa susunod na antas na 'Remote repo' upang mai-publish ito sa isang remote na imbakan.

Hindi ba naka-imbak na ang aking data sa isang git database?

Oo, ito talaga! Gayunpaman, tulad ng ipinahiwatig sa diagram sa ibaba ang iyong data ay nasa lokal na database pagkatapos mong mangako ito at hindi pa ibinabahagi sa iyong mga kasamahan.
4-tier na arkitektura
Pinupunan ng artikulong ito ang agwat sa pagitan ng pagkuha ng aming data mula sa iyo lokal na imbakan at dalhin ito sa susunod na layer na tinatawag na remote na imbakan .





Ano ang isang remote na imbakan

Isang database ng nakolektang impormasyon na nakaimbak sa isang lokasyon na maaaring ibinahagi kasama ang iyong mga kasamahan sa koponan sa pamamagitan ng pagbibigay sa kanila pag-access .
Mainam itong na-host sa a ulap o sa a server (lokal o remote) sa internet o sa iyong lokal na network.
Ang isang remote na imbakan ay tulad ng iyong lokal na repository ng git, maliban na sa pangkalahatan ito ay idineklara bilang isang walang laman na imbakan upang hindi magkaroon ng isang gumaganang kopya tulad ng iyong lokal.
Ginagawa ito upang paghigpitan ang mga direktang pagbabago na ginawa sa remote na imbakan.

Bare repository Ang konsepto ay isang idinagdag na kalamangan para sa isang remote na imbakan upang mapanatili ito protektado at gagamitin para sa nag-iisa nitong layunin ng pagbabahagi ng code sa mga miyembro ng koponan.
Nakamit ito sa pamamagitan ng pagdedeklara ng remote na imbakan bilang hubad sa pamamagitan ng paggamit ng '--lang‘Flag sa oras ng pagsisimula nito bilang isang git repository.
Sa paggawa nito, nilikha ang iyong repo gamit ang git metadata o sa madaling salita git na mga bagay na nakaimbak sa ilalim ng nakatagong direktoryo na '.git' lamang at walang magagamit na kopya na magagamit para sa sinuman na direktang magdagdag ng data.
Utos:git init --bare.

Sa pag-iisip na ito, sa pagsulong ay makakakita tayo ng maraming mga paraan upang pamahalaan ang isang remote na repo at kung paano namin mai-sync ang aming lokal na gawain sa remote.



Lumikha ng isang remote na imbakan

Una at pinakamahalaga, kailangan mong magpasya sa isang lokasyon na nais mong ilagay ang iyong remote na repo.
Mayroong ilang mga tanyag na mga cloud-based git hosting repository tulad ng - GitLab , BitBucket , GitHub , Puwersa at CloudForge upang pangalanan ang ilan.
Sa post na ito, isinasaalang-alang ko ang GitHub dahil ito ang lugar na una kong sinimulang mapanatili ang aking mga repository sa git. Upang magsimula, ang kailangan mo lang gawin ay mag-sign in sa isang GitHub account at pagkatapos lumikha ng isang bagong lalagyan , lumilikha ito ng isang URL na tumuturo sa remote na repo na ito.


Sinusuportahan ng Git ang mga proteksyon ng ssh, git, http at https upang matugunan ang isang repository URL.

Bilang kahalili, maaari mo ring ilagay ang iyong proyekto sa ibang lugar sabihin a Linux server pagsunod sa mga utos sa ibaba-
cd $ HOME
mkdir remote_repo
cd remote_repo
git init --bare.

Ikabit ang remote sa iyong lokal na makina

Ang paglakip ng isang remote sa iyong gumaganang kopya ay nangangahulugang lumikha ng isang tagapaghawak ng sanggunian ng pointer para sa remote o simpleng tinatawag na € œ remote handler '.
Tumalon tayo sa aking proyekto na nais kong mai-publish-cd malamanRemotes
Syntax:git remote idagdag
Utos:git remote idagdag ang pinagmulan https://github.com/divyabhushan/learnRemotes.git

'Pinagmulan ay ang default sanggunian pangalan para sa remote handler. ' (ang malayong pangalan ay dapat na may kaugnayang pangalan)
Tingnan natin kung gumana iyon, gamit ang utos:git remote

Ginawa ito :)

I-print din ang remote URL kasama ang pangalan:
git remote -v

Magaling! Nakatakda ka na sa pagtataguyod ng isang koneksyon sa iyong remote na imbakan mula sa iyong lokal na direktoryo ng pagtatrabaho.

Oras upang I-publish

Syntax:git push - lahat --tags[-u | --set-upstream]
Utos:gitulak pinagmulan master

Kaya, basahin mo ito bilang 'Itulak ang pagkakaiba ng mga pangako na magmula sa lokal na master' .

Kung susuriin mo ang iyong GitHub account, dapat ipakita ang iyong lokal na mga commit (data) doon-



Mga Sangay sa Pagsubaybay

Kaya, matagumpay mong na-publish ang iyong trabaho sa remote na imbakan.
Gayunpaman, mahalagang i-set up mo ang iyong lokal na sangay sa subaybayan awtomatikong ang mga pagbabago sa remote na sangay.
Gamitin ang '--set-upstreamo-u'Flag kasama ang' git push 'na utos
Utos:git push -u pinagmulan master

mga sanga ng naka-code na kulay


Lumikha pa tayo ng isang bagong komit sa sangay na 'master' at i-verify kung paano ito napansin-
Utos:katayuan ng git


Ipakita ang mga sangay sa pagsubaybay sa mode na verbose
Utos:sangay ng git -vv


Samakatuwid sa tuwing, may pagkakaiba sa mga commits sa pagitan ng iyong lokal at remote na imbakan sa sinusubaybayan na sangay, ipapaalam sa iyo ni Git.
Ang cool di ba !!!

klase ng adapter sa java na may halimbawa

Paano makakonekta ang iba sa iyong remote?

Ito ay isang piraso ng cake kapag ikaw clone isang malayuang imbakan !!!

Kaya, ang pag-clone mula sa isang remote na imbakan ay gumagawa ng 2 bagay muna, ang iyong malayuang sanggunian ay awtomatikong idinagdag, at ang pangalawang default sangay ay nakatakda sa subaybayan malayong sangay awtomatiko

Hakbang1: I-clone ang iyong remote repo bilang ibang gumagamit-
Utos:git clone https://github.com/divyabhushan/learnRemotes.git developer2
cd developer2

Hakbang2: Ipakita ang remote at ang url nito
Utos:git remote -v


Hakbang3: Ilista ang mga sangay sa pagsubaybay
Utos:sangay ng git -vv


Nagsisimula ang kasiyahan kapag sinimulan ng 'developer2' ang kanyang sariling gawain at itulak sa remote.

Maaari kang kumonekta at mag-ambag sa higit sa isang remote imbakan mula sa a solong proyekto .

Tingnan ang mga malalayong sanga

Utos:sangay git ..


Gamitin ang opsyong ‘-a’ upang mai-print ang parehong lokal at malayong mga sangay, subukan ito sa iyong lokal na repo pagkatapos lumikha ng ilang mga lokal na sangay.

Paano nag-ambag ang iba sa iyong remote?

Paunang pag-set up
Nagpasya ang Developer2 na baguhin ang ilang mga bagay tulad ng:
sa Lumikha isang bagong 'tampok' mula sa pinakabagong gumawa sa sangay na 'master' at gumawa ng isang bagong gumawa sa sangay na ‘tampok’
Mga Utos:
tampok na checkout -b
echo 'pagpapahusay ng tampok'> tampok.txt
git idagdag. && git commit -m 'mga pagpapahusay sa tampok'

b. Lumikha isang iba't ibang mga 'tampok2' na sangay mula sa isang mas matandang gumawa sa sangay na 'master'
Mga Utos:
git checkout -b tampok2 95651fb
echo 'tampok2 idinagdag'> tampok2.txt
git idagdag. && git commit -m 'Pagdaragdag ng mga pagbabago sa tampok2'

I-visualize natin ang mga branch sa developer2 machine kasama ang impormasyon sa pagsubaybay:

Tulad ng napansin mo, ang mga bagong sangay ay hindi naka-set up upang subaybayan ang mga malalayong sanga.

Itulak ang mga pagbabago sa remote
Una hayaan akong itulak ang sangay ng 'tampok' sa remote na may flag na '–set-upstream o -u'
Utos:git push -u tampok na pinagmulan




Ang isang bagong sangay ay malilikha sa remote, kung wala ito !!!

Sa sandaling ito, ilista ang mga malalayong sanga na may utos: 'git branch -r'




Isa pang paraan upang subaybayan ang remote branch
Bukod dito, itakda din natin ang 'tampok2' na sangay din upang ituro ang parehong sangay ng 'tampok' sa remote
Utos:git branch --set-upstream-to = pinagmulan / tampok na tampok2



kulay na naka-code na sangay


Isang mabilis na tip: Maaari mong alisin ang lokal na pangalan ng sangay kung nasa sanga ka na, sa madaling salita, ang lokal na sangay ay naka-check-out na.

Ilista muli ang mga sangay sa mode na verbose, utos:sangay ng git -vv



Pansinin, ang parehong mga lokal na sangay na 'tampok' at 'tampok2' na tumuturo sa parehong tampok na remote na sangay.

Manatiling naka-synch up sa remote - sunduin, hilahin at itulak

Isaalang-alang natin ang bahagi kung saan ang malayong sangay ang sinusubaybayan mo ay na-update na, ano pagkatapos?
Isang simpleng ‘katayuan ng git‘O isang‘git checkout'O kahit na ang'sangay ng git -vv'Binalaan tayo ng utos sa gayong hindi pagtutugma-



Dapat munang i-update ng 'Developer2' ang mga lokal na sanggunian at bagay (' git fetch ‘) At pagkatapos ay pagsamahin ang mga malalayo at lokal na pagbabago (‘ git merge ’).
Kapansin-pansin, maaari mong palitan ang dalawang utos na ito sa isang solong 'git pull' na utos.
Syntax:punta ka na hilahin

–Para sa hindi sinusubaybayan na sangay
Syntax: git pull [:]
Utos:tampok na pinagmulan ng git pull: tampok2

–Para sa sinusubaybayan na sangay
Syntax: hatak
Utos:git hilahin




=> Sa pagsasagawa, maaaring may mga salungatan na umuusbong sa yugtong ito kapag hinila mo mula sa malayo para sa pagiging simple na nakabuo ako ng isang walang-salungat na pagbabago na gagawin.

Matapos ang paghugot ng 'developer2' (kunin at pagsamahin) ang malayuang pinakabagong mga pagbabago ay dapat na maglathala ng kanyang sariling gawa-
Utos:pin push pinagmulan HEAD: tampok
Tandaan: ang tampok na 'tampok' sa upstream na sangay ay hindi tumutugma sa pangalan ng lokal na sangay na 'tampok2', kailangan mong ibigay ito nang malinaw

ano ang alerto sa javascript



Paalala : Ang 'ULO' ay ang pinakabagong gumawa sa lokal na sangay na 'tampok2'.

Kailan gagamitin ang ‘git fetch’?
Sa mga oras na kailangan mong i-update lamang ang iyong sanggunian ulo nang hindi tunay na pag-download (paghila) mula sa remote.
O kapag ang mga malalayong sangay ay nabago / na-delete sa na-update, tatakbo mo ang fetch command gamit ang ‘--prune'Pagpipilian.
Bilang isang pinakamahusay na kasanayan, dapat mong patakbuhin ang 'git fetch' na utos sa bawat oras na magsimula kang magtrabaho sa iyong lokal na repo.

Remote Pamamahala

Panghuli, gugustuhin mong magsagawa ng ilang mga gawain sa pangangalaga ng bahay tulad ng pagpapalit ng pangalan o pag-aalis ng mga remote at sangay.
Ang mga ito ay kasing kahalaga ng dating mga utos.

Palitan ang pangalan ng remote

Syntax:gitang palitan ang pangalan
Utos:gitang palitan ang pangalan ng snv_repo svn
Halimbawa, isaalang-alang ang isang manager ng proyekto na nauugnay sa 3 mga proyekto-


Tanggalin ang remote na sanggunian

Ipagpalagay na hindi ka na nag-synch up sa isang remote na imbakan, malamang na tatanggalin mo ang sanggunian ng pointer dito.
Gayunpaman, hindi ito makakaapekto sa remote na imbakan at gawain ng iba pa.

Syntax:gitang alisin
Utos:git remote alisin ang proj1


Paano kung mayroon kang isang lokal na sangay na nakatakda upang subaybayan ang isang sangay mula sa inalis na 'proj1' na imbakan?
Kaya, ang iyong lokal na sangay (at samakatuwid ang gawain) ay ligtas at kasalukuyan pa rin, lamang nito remote na sanggunian sa pagsubaybay at pagsasaayos setting ay magiging awtomatikong tinanggal

Tanggalin ang remote branch

Sabihin mo hindi sinasadya tinulak ang iyong pansarili magaspang na trabaho sa a sangay sa remote ngunit ayaw pa ring suriin ito ng iba -
Alisin ang 'hindi natapos na Trabaho' na sangay mula sa remote na 'svn'-
Utos:sangay ng git -vv#List ang mga remote-tracking branch



Syntax:git push --delete
Utos:git push --tanggal ang svn hindi natapos na Trabaho


Paikot-ikot

Sa pamamagitan nito, natapos na kami sa artikulong ito. Kung nahanap mo ito Pagtuturo 'Nauugnay, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka DevOps Certification Training ay tumutulong sa mga nag-aaral na makakuha ng kadalubhasaan sa iba't ibang mga proseso at tool ng DevOps tulad ng Puppet, Jenkins, Nagios at GIT para sa pag-automate ng maraming mga hakbang sa SDLC.