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.