Linux-da Git wersiýa dolandyryş ulgamyny nädip ulanmaly [Giňişleýin gollanma]


Wersiýa gözegçiligi (täzeden serediş ýa-da çeşme gözegçiligi) belli bir wersiýany soňrak ýatlap bilersiňiz, wagtyň geçmegi bilen bir faýla ýa-da faýllar ýygyndysyna üýtgeşmeleri ýazga almagyň usulydyr. Wersiýa dolandyryş ulgamy (ýa-da gysgaça VCS) faýl ulgamyndaky faýllara üýtgeşmeleri ýazga alýan guraldyr.

Ol ýerde köp wersiýa gözegçilik ulgamy bar, ýöne Git häzirki wagtda iň meşhur we ýygy-ýygydan ulanylýar, esasanam çeşme kodlaryny dolandyrmak üçin. Wersiýa dolandyryşy, diňe bir deslapky kody däl-de, kompýuterdäki islendik faýl görnüşi üçin ulanylyp bilner.

Wersiýa gözegçilik ulgamlary/gurallary şahsyýetlere ýa-da bir topar adamlara mümkinçilik berýän birnäçe aýratynlygy hödürleýär:

  • taslamanyň wersiýalaryny dörediň.
  • üýtgeşmeleri takyk yzarlaň we gapma-garşylyklary çözüň.
  • üýtgeşmeleri umumy wersiýa birleşdirmek.
  • saýlanan faýllara ýa-da tutuş taslama üýtgetmek we yzyna gaýtarmak.
  • wagtyň geçmegi bilen üýtgeşmeleri deňeşdirmek üçin taslamanyň taryhy wersiýalaryna giriň.
  • problema döredip biljek bir zady soňky gezek kimiň üýtgedendigini görüň.
  • taslamanyň ygtybarly ätiýaçlyk nusgasyny dörediň.
  • bir taslamanyň üstünde işlemek üçin birnäçe maşyn ulanyň we başga-da köp zat.

Git ýaly wersiýa gözegçilik ulgamyndaky taslama esasan üç bölümden ybarat bolar:

  • ammar: taslama faýllaryňyzyň ýagdaýyny ýa-da üýtgemelerini ýazga almak üçin maglumat bazasy. Onda täze taslama üçin zerur Git metadatalary we obýektler bar. Torda ýa-da uzakdaky serwerde başga bir kompýuterden ammar klonlanyňyzda munuň adatça göçürilýändigine üns beriň.
  • iş katalogy ýa-da sebiti: üstünde işläp boljak taslama faýllarynyň göçürmesini saklaýar (goşmaçalar, pozmalar we beýleki üýtgetmeler giriziň).
  • sahna meýdançasy: üýtgeşmeler hakda maglumatlary saklaýan, ammarda (faýlyň ýa-da faýllaryň ýagdaýyny ýatda saklamaga) taýyn bir faýl (Gitiň aşagyndaky indeks diýlip atlandyrylýar)./li>

WCS-leriň iki esasy görnüşi bar, esasy tapawudy ammarlaryň sany:

  • Merkezleşdirilen wersiýa dolandyryş ulgamlary (CVCS): bu ýerde her taslama toparynyň agzasy öz ýerli iş katalogyny alýar, ýöne olar diňe bir merkezi ammarda üýtgeşmeler girizýärler.
  • Paýlanan wersiýa dolandyryş ulgamlary (DVCS): munuň aşagynda her bir taslama toparynyň agzasy öz ýerli iş katalogyny we ýerine ýetirip boljak Git katalogyny alýar. Bir şahs ýerli derejede wada bereninden soň, beýleki toparyň agzalary üýtgeşmelere merkezi ammarlara iterýänçä girip bilmezler. Git DVCS-iň mysaly.

Mundan başga-da, Git ammary ýalaňaç (iş bukjasy bolmadyk ammar) ýa-da ýalaňaç (iş bukjasy bolan) bolup biler. Paýlaşylan (ýa-da jemgyýetçilik ýa-da merkezi) ammarlar elmydama ýalaňaç bolmaly - Github ammarlarynyň hemmesi ýalaňaç.

Git bilen wersiýa dolandyryşyny öwreniň

Git erkin we açyk çeşme, çalt, güýçli, paýlanan, ulanmak aňsat we uly wersiýalar bilen örän täsirli we ajaýyp şahalandyryş we birleşdiriş ulgamyna eýe bolan meşhur wersiýa dolandyryş ulgamy. Git katalogynda saklanýan kiçi faýl ulgamynyň gysgajyk suratlary ýaly maglumatlary has köp işlemek üçin döredildi.

Git-iň aşagyndaky iş prosesi gaty ýönekeý: indiki bukjanyňyzyň bir bölegi bolmak üçin iş katalogyňyzdaky faýllara üýtgeşmeler girizýärsiňiz, soňra üýtgedilen faýllary saýlap sahna meýdançasyna saýlap goşuň.

Taýýar bolanyňyzdan soň faýllary sahna meýdanyndan alýan we şol suraty Git katalogyna hemişelik ýatda saklaýan bir wada berýärsiňiz.

Linux-da Git-i gurmak üçin, saýlaw paýlamagyňyz üçin degişli buýrugy ulanyň:

$ sudo apt install git   [On Debian/Ubuntu]
$ sudo yum install git   [On CentOS/RHEL]

Git gurlandan soň, doly adyňyzy we e-poçta salgyňyzy görkezip, Gite kimdigiňizi aýtmak maslahat berilýär:

$ git config --global user.name “Aaron Kili”
$ git config --global user.email “[email ”

Git sazlamalaryňyzy barlamak üçin aşakdaky buýrugy ulanyň.

$ git config --list 

Täze Git ammaryny döredýär

Paýlaşylan ammarlar ýa-da merkezleşdirilen iş akymlary gaty ýygydyr we şu ýerde görkezeris. Mysal üçin, guramaňyzyň dürli bölümlerinden ulgam dolandyryjylary/programmistleri üçin uzakdaky merkezi ammar gurmak, serwerde/taslamalar/skriptler/serwerde saklanjak baş ýazgylar atly taslama üstünde işlemek size tabşyryldy diýip çaklaýarys.

SSH uzakdaky serwere giriň we zerur bukjany dörediň, sysadmins atly topar dörediň (bu topara ähli taslama toparynyň agzalaryny goşuň, mysal üçin ulanyjy administratory) we bu bukjada degişli rugsatlary goýuň.

# mkdir-p /projects/scripts/
# groupadd sysadmins
# usermod -aG sysadmins admin
# chown :sysadmins -R /projects/scripts/
# chmod 770 -R /projects/scripts/

Soňra ýalaňaç taslama ammaryna başlaň.

# git init --bare /projects/scripts/bashscripts

Bu pursatda, taslama üçin merkezi ammar bolan ýalaňaç Git katalogyny üstünlikli başladyňyz. Therehli faýllary we kataloglary görmek üçin bukjanyň sanawyny etmäge synanyşyň:

# ls -la /projects/scripts/bashscripts/

Git ammaryny klonlaň

Indi uzakdaky paýlaşylan Git ammaryny SSH arkaly ýerli kompýuteriňize klonlaň (web serweri gurnalan we Github-daky köpçülikleýin ammarlaryň köpüsinde bolşy ýaly laýyk düzülen bolsa, HTTP/HTTPS arkaly klonlaşdyryp bilersiňiz):

$ git clone ssh://[email _server_ip:/projects/scripts/bashscripts 

Belli bir kataloga (~/bin/bashscript) klonlamak üçin aşakdaky buýrugy ulanyň.

$ git clone ssh://[email _server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Indi ýalaňaç ammarda (iş bukjasy bilen) taslamanyň ýerli mysaly bar, taslamanyň başlangyç gurluşyny döredip bilersiňiz (meselem, README.md faýly, dürli kategoriýalar üçin kiçi kataloglar goşuň gözleg skriptlerini, sysadmin ro dükany sysadmin skriptlerini we ş.m. saklamak üçin):

$ cd ~/bin/bashscripts/
$ ls -la

Git ýagdaýynyň gysgaça mazmunyny barlaň

Iş bukjanyňyzyň ýagdaýyny görkezmek üçin, eden üýtgeşmeleriňizi görkezýän status buýrugyny ulanyň; haýsy faýllary Git yzarlamaýar; sahnalaşdyrylan şol üýtgeşmeler we ş.m.

$ git status 

Git etapynyň üýtgemegi we borçnama

Ondan soň, -A wyklýuçateli bilen goşmak buýrugyny ulanyp, ähli üýtgeşmeleri düzüň we başlangyç borçnamany ýerine ýetiriň. -a baýdagy üýtgedilen faýllary awtomatiki düzmegi buýurýar we wada habaryny görkezmek üçin -m ulanylýar:

$ git add -A
$ git commit -a -m "Initial Commit"

Uzakdaky Git ammary üçin ýerli borçnamalary çap ediň

Taslama toparynyň ýolbaşçylygynda, indi taslama gurluşyny döredeniňizden soň, üýtgetmeleri görkezilişi ýaly push buýrugy bilen merkezi ammarda çap edip bilersiňiz.

$ git push origin master

Häzirki wagtda ýerli git ammaryňyz taslamanyň merkezi ammary (gelip çykyşy) bilen täzelenmeli, ýagdaý buýrugyny ýene bir gezek işledip tassyklap bilersiňiz.

$ git status

Şeýle hem, ammarlary ýerli kompýuterlere klonlaşdyryp, taslama üstünde işläp başlamagyňyzy kärdeşleriňize habar berip bilersiňiz.

Täze Git şahamçasyny dörediň

Şahamça, taslamaňyzyň bir aýratynlygy üstünde işlemäge ýa-da kod bazasyna (baş şaha) degmezden meseläni çalt çözmäge mümkinçilik berýär. Täze şahany döretmek we soňra oňa geçmek üçin degişlilikde şahany we töleg buýruklaryny ulanyň.

$ git branch latest
$ git checkout latest

Ativea-da başga bir bölüm döredip, -b baýdagy bilen gözegçilik buýrugyny ulanyp, bir ädimde oňa geçip bilersiňiz.

$ git checkout -b latest

Mysal üçin başga bir şahanyň esasynda täze şahamça döredip bilersiňiz.

$ git checkout -b latest master

Haýsy şahadadygyňyzy barlamak üçin şahanyň buýrugyny ulanyň (ýyldyz belgisi işjeň şahany görkezýär):

$ git branch

Täze filial döredilenden we oňa geçensoň, onuň aşagynda käbir üýtgeşmeler giriziň we käbir işleri ediň.

$ vim sysadmin/topprocs.sh
$ git status
$ git commit add  sysadmin/topprocs.sh
$ git commit -a -m 'modified topprocs.sh'

Üýtgeşmeleri bir şahadan beýlekisine birleşdiriň

Şaha synagyndaky üýtgeşmeleri baş şaha birleşdirmek üçin baş şaha geçiň we birleşdiriň.

$ git checkout master 
$ git merge test 

Indi belli bir şaha gerek däl bolsa, -d wyklýuçatelini ulanyp pozup bilersiňiz.

$ git branch -d test

Uzakdaky merkezi ammardan üýtgeşmeleri göçürip alyň

Toparyňyzyň agzalary merkezi taslama ammaryna üýtgeşmeler girizdi diýip çaklasak, çekmek buýrugyny ulanyp, taslamanyň ýerli nusgasyna islendik üýtgeşmäni göçürip alyp bilersiňiz.

$ git pull origin
OR
$ git pull origin master	#if you have switched to another branch

Git ammaryny barlaň we deňeşdirmeleri ýerine ýetiriň

Bu soňky bölümde, ammaryňyzda bolup geçen ähli işleri yzarlaýan, şeýlelik bilen taslama taryhyny görmäge mümkinçilik berýän käbir peýdaly Git aýratynlyklaryny açarys.

Birinji aýratynlyk, borçnamalary görkezýän Git gündeligi:

$ git log

Anotherene bir möhüm aýratynlyk, dürli görnüşli obýektleri görkezýän görkeziş buýrugydyr (meselem, tabşyryklar, bellikler, agaçlar we ş.m.):

$ git show

Bilmeli üçünji möhüm aýratynlyk, şahalaryň arasyndaky tapawudy deňeşdirmek ýa-da görkezmek, iş bukjasy bilen indeksiň arasyndaky üýtgeşmeleri görkezmek, diskdäki iki faýlyň arasyndaky üýtgeşmeler we ş.m.

Mysal üçin ussat bilen iň soňky şahanyň arasyndaky tapawudy görkezmek üçin aşakdaky buýrugy işledip bilersiňiz.

$ git diff master latest

Git, adamlar toparyna şol bir faýl (lar) ulanyp bilelikde işlemäge mümkinçilik berýär, şol bir wagtyň özünde belli bir wersiýalary soň ýatlap bilmekleri üçin faýl (lar) -a üýtgeşmeleri ýazga alýar.

Şeýlelik bilen, Git-i deslapky kody, konfigurasiýa faýllaryny ýa-da kompýuterde saklanýan islendik faýly dolandyrmak üçin ulanyp bilersiňiz. Has giňişleýin resminamalar üçin Git Onlaýn resminamalaryna ýüz tutup bilersiňiz.