Kā izmantot Git versiju kontroles sistēmu Linux [Visaptveroša rokasgrāmata]


Versijas kontrole (pārskatīšanas vai avota vadība) ir veids, kā laika gaitā ierakstīt faila vai failu kolekcijas izmaiņas, lai vēlāk varētu atsaukt konkrētas versijas. Versiju kontroles sistēma (vai īsumā VCS) ir rīks, kas reģistrē izmaiņas failu sistēmā esošajās datnēs.

Tur ir daudz versiju kontroles sistēmu, taču Git pašlaik ir vispopulārākais un visbiežāk izmantotais, it īpaši avota kodu pārvaldībai. Versijas kontroli faktiski var izmantot gandrīz jebkura veida failiem datorā, ne tikai avota kodam.

Versiju kontroles sistēmas/rīki piedāvā vairākas funkcijas, kas ļauj personām vai cilvēku grupai:

  • izveidot projekta versijas.
  • precīzi izsekot izmaiņām un atrisināt konfliktus.
  • apvienot izmaiņas kopējā versijā.
  • atlasīto failu vai visa projekta izmaiņu atcelšana un atsaukšana.
  • piekļūstiet vēsturiskām projekta versijām, lai salīdzinātu izmaiņas laika gaitā.
  • uzziniet, kurš pēdējoreiz modificēja kaut ko tādu, kas varētu radīt problēmas.
  • izveidojiet drošu projekta dublējumu ārpus uzņēmuma.
  • izmantojiet vairākas mašīnas, lai strādātu pie viena projekta un daudz ko citu.

Projektam ar tādas versijas kontroles sistēmu kā Git galvenokārt būs trīs sadaļas:

  • repozitorijs: datu bāze projekta failu stāvokļa vai izmaiņu reģistrēšanai. Tas satur visus nepieciešamos Git metadatus un objektus jaunajam projektam. Ņemiet vērā, ka tas parasti tiek kopēts, klonējot repozitoriju no cita tīkla vai attālā servera datora.
  • darba direktorijs vai apgabals: tiek saglabāta projekta failu kopija, ar kuru jūs varat strādāt (veikt papildinājumus, dzēst un citas modifikācijas darbības).
  • pieturvieta: fails (Git direktorijā pazīstams kā indekss) Git direktorijā, kurā tiek glabāta informācija par izmaiņām, kuru esat gatavs veikt (saglabāt faila vai failu kopas stāvokli) krātuvē.

Ir divi galvenie VCS veidi, kuru galvenā atšķirība ir krātuvju skaits:

  • Centralizētās versiju kontroles sistēmas (CVCS): šeit katrs projekta grupas dalībnieks iegūst savu vietējo darba direktoriju, taču veic izmaiņas tikai vienā centrālā repozitorijā.
  • Izplatītās versiju kontroles sistēmas (DVCS): saskaņā ar to katrs projekta grupas dalībnieks iegūst savu vietējo darba direktoriju un Git direktoriju, kur var veikt saistības. Pēc tam, kad indivīds ir apņēmies veikt lokāli, citi komandas locekļi nevar piekļūt izmaiņām, kamēr viņš/viņa tos nenovirza uz centrālo repozitoriju. Git ir DVCS piemērs.

Turklāt Git repozitorijs var būt tukšs (repozitorijs, kuram nav darba direktorija) vai nav tukšs (tāds ar darba direktoriju). Koplietojamām (vai publiskām vai centrālām) krātuvēm vienmēr jābūt tukšām - visas Github krātuves ir tukšas.

Uzziniet versiju vadību, izmantojot Git

Git ir bezmaksas un atvērta pirmkoda, ātra, jaudīga, izplatīta, viegli lietojama un populāra versiju kontroles sistēma, kas ir ļoti efektīva lieliem projektiem un kurai ir ievērojama sazarošanas un apvienošanas sistēma. Tas ir paredzēts datu apstrādei, piemēram, mini failu sistēmas momentuzņēmumu sērijai, kas tiek glabāta Git direktorijā.

Darbplūsma sadaļā Git ir ļoti vienkārša: jūs veicat izmaiņas failos savā darba direktorijā, pēc tam selektīvi pievienojiet tikai tos failus, kas ir mainīti, pieturvietai, lai būtu daļa no jūsu nākamās saistības.

Kad esat gatavs, jūs veicat apņemšanos, kas paņem failus no pieturvietas un pastāvīgi saglabā šo momentuzņēmumu direktorijā Git.

Lai instalētu Git Linux, izvēlētajam izplatījumam izmantojiet atbilstošo komandu:

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

Pēc Git instalēšanas ieteicams pateikt Git, kas jūs esat, norādot pilnu vārdu un e-pasta adresi šādi:

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

Lai pārbaudītu savus Git iestatījumus, izmantojiet šo komandu.

$ git config --list 

Izveido jaunu Git repozitoriju

Kopīgas krātuves vai centralizētas darbplūsmas ir ļoti izplatītas, un to mēs šeit parādīsim. Piemēram, mēs pieņemam, ka jums ir uzdots iestatīt attālu centrālo repozitoriju sistēmas administratoriem/programmētājiem no dažādiem jūsu organizācijas departamentiem, strādāt pie projekta ar nosaukumu bashscripts, kas tiks saglabāts zem/projekti/scritpts/serverī.

SSH attālajā serverī un izveidojiet nepieciešamo direktoriju, izveidojiet grupu ar nosaukumu sysadmins (pievienojiet šai grupai visus projekta grupas dalībniekus, piemēram, lietotāja administratoru) un iestatiet atbilstošās atļaujas šajā direktorijā.

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

Pēc tam inicializējiet kailu projekta repozitoriju.

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

Šajā brīdī jūs esat veiksmīgi inicializējis neapbruņotu Git direktoriju, kas ir projekta centrālā krātuve. Mēģiniet izveidot direktorija sarakstu, lai redzētu visus tajā esošos failus un direktorijus:

# ls -la /projects/scripts/bashscripts/

Klonējiet Git repozitoriju

Tagad klonējiet attālo koplietojamo Git repozitoriju savā lokālajā datorā, izmantojot SSH (varat arī klonēt, izmantojot HTTP/HTTPS, ja jums ir instalēts un atbilstoši konfigurēts tīmekļa serveris, kā tas ir lielākajā daļā publisko Github krātuvju), piemēram:

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

Lai to klonētu noteiktā direktorijā (~/bin/bashscripts), izmantojiet zemāk esošo komandu.

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

Tagad jums ir lokāls projekta gadījums bez kailuma repozitorijā (ar darba direktoriju), jūs varat izveidot projekta sākotnējo struktūru (ti, pievienot README.md failu, apakšdirektorijus dažādām skriptu kategorijām, piemēram, glabāt iepazīšanās skriptus, sysadmin ro veikala sysadmin skriptus utt.):

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

Pārbaudiet Git statusa kopsavilkumu

Lai parādītu darba direktorija statusu, izmantojiet statusa komandu, kas parādīs visas jūsu veiktās izmaiņas; kurus failus Git neseko; tās izmaiņas, kas ir iestudētas utt.

$ git status 

Git Stage izmaiņas un apņemšanās

Pēc tam veiciet visas izmaiņas, izmantojot komandu add ar slēdzi -A un veiciet sākotnējo apņemšanos. Karogs -a komandē komandu automātiski iestudēt modificētos failus, un -m tiek izmantots, lai norādītu saistību ziņojumu:

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

Publicējiet vietējās saistības ar attālo Git repozitoriju

Kā projekta komandas vadība tagad, kad esat izveidojis projekta struktūru, varat publicēt izmaiņas centrālajā repozitorijā, izmantojot push komandu, kā parādīts.

$ git push origin master

Pašlaik vietējam git repozitorijam vajadzētu būt atjauninātam ar projekta centrālo repozitoriju (izcelsmi), to varat apstiprināt, vēlreiz palaižot statusa komandu.

$ git status

Jūs varat arī informēt kolēģus, lai sāktu darbu pie projekta, klonējot krātuvi viņu vietējos datoros.

Izveidojiet jaunu Git filiāli

Atzarošana ļauj strādāt pie sava projekta vai ātri novērst problēmas, nepieskaroties koda bāzei (galvenā filiāle). Lai izveidotu jaunu filiāli un pēc tam pārslēgtos uz to, izmantojiet attiecīgi filiāles un izrakstīšanās komandas.

$ git branch latest
$ git checkout latest

Varat arī izveidot jaunu filiāli un pārslēgties uz to vienā solī, izmantojot komandu checkout ar karodziņu -b .

$ git checkout -b latest

Varat arī izveidot jaunu filiāli, piemēram, pamatojoties uz citu filiāli.

$ git checkout -b latest master

Lai pārbaudītu, kurā filiālē atrodaties, izmantojiet komandu filiāle (zvaigznītes zīme norāda aktīvo filiāli):

$ git branch

Pēc jaunās filiāles izveidošanas un pārslēgšanās veiciet dažas izmaiņas zem tā un veiciet dažas saistības.

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

Apvienot izmaiņas no vienas filiāles uz otru

Lai apvienotu izmaiņas filiāles testa ietvaros galvenajā filiālē, pārslēdzieties uz galveno filiāli un veiciet apvienošanu.

$ git checkout master 
$ git merge test 

Ja jums vairs nav nepieciešama noteikta filiāle, varat to izdzēst, izmantojot slēdzi -d .

$ git branch -d test

Lejupielādējiet izmaiņas no attālās centrālās krātuves

Pieņemot, ka jūsu komandas locekļi ir virzījuši izmaiņas centrālajā projekta krātuvē, visas izmaiņas varat lejupielādēt projekta lokālajā instancē, izmantojot komandu pull.

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

Pārbaudiet Git repozitoriju un veiciet salīdzinājumus

Šajā pēdējā sadaļā mēs aplūkosim dažas noderīgas Git funkcijas, kas seko visām darbībām, kas notika jūsu krātuvē, tādējādi ļaujot jums apskatīt projekta vēsturi.

Pirmā funkcija ir Git žurnāls, kas parāda saistību žurnālus:

$ git log

Vēl viena svarīga iezīme ir komanda show, kas parāda dažādu veidu objektus (piemēram, apņemšanos, tagus, kokus utt.):

$ git show

Trešā svarīgā iezīme, kas jums jāzina, ir komanda diff, ko izmanto, lai salīdzinātu vai parādītu atšķirības starp filiālēm, parādītu izmaiņas starp darba direktoriju un indeksu, izmaiņas starp diviem failiem diskā un daudz ko citu.

Piemēram, lai parādītu atšķirību starp galveno un pēdējo filiāli, varat palaist šo komandu.

$ git diff master latest

Git ļauj cilvēku komandai strādāt kopā, izmantojot to pašu (-os) failu (-us), vienlaikus ierakstot faila (-u) izmaiņas, lai vēlāk varētu atsaukt konkrētas versijas.

Tādā veidā jūs varat izmantot Git, lai pārvaldītu avota kodu, konfigurācijas failus vai visus datorā saglabātos failus. Lai iegūtu papildu dokumentāciju, varat skatīt Git tiešsaistes dokumentāciju.