Cum să utilizați sistemul de control al versiunii Git în Linux [Ghid cuprinzător]


Controlul versiunilor (controlul revizuirii sau controlul sursei) este o modalitate de a înregistra modificările aduse unui fișier sau unei colecții de fișiere de-a lungul timpului, astfel încât să puteți reaminti anumite versiuni ulterior. Un sistem de control al versiunilor (sau VCS pe scurt) este un instrument care înregistrează modificările aduse fișierelor dintr-un sistem de fișiere.

Există multe sisteme de control al versiunilor, dar Git este în prezent cel mai popular și mai frecvent utilizat, în special pentru gestionarea codului sursă. Controlul versiunilor poate fi folosit pentru aproape orice tip de fișier de pe un computer, nu numai pentru codul sursă.

Sistemele/instrumentele de control al versiunilor oferă mai multe caracteristici care permit indivizilor sau unui grup de persoane să:

  • creați versiuni ale unui proiect.
  • urmăriți cu exactitate modificările și rezolvați conflictele.
  • îmbina modificările într-o versiune comună.
  • rollback și anulați modificările aduse fișierelor selectate sau unui întreg proiect.
  • accesați versiuni istorice ale unui proiect pentru a compara modificările în timp.
  • vezi cine a modificat ultima dată ceva care ar putea cauza o problemă.
  • creați o copie de rezervă sigură offsite a unui proiect.
  • utilizați mai multe mașini pentru a lucra la un singur proiect și multe altele.

Un proiect sub un sistem de control al versiunilor, cum ar fi Git, va avea în principal trei secțiuni, și anume:

  • un depozit: o bază de date pentru înregistrarea stării sau modificărilor fișierelor dvs. de proiect. Conține toate metadatele și obiectele Git necesare pentru noul proiect. Rețineți că acesta este în mod normal ceea ce este copiat atunci când clonați un depozit de pe un alt computer de pe o rețea sau un server la distanță.
  • un director sau o zonă de lucru: stochează o copie a fișierelor de proiect la care puteți lucra (adăugați, șterge și alte acțiuni de modificare).
  • o zonă de pregătire: un fișier (cunoscut sub numele de index sub Git) din directorul Git, care stochează informații despre modificări, pe care sunteți gata să le trimiteți (salvați starea unui fișier sau a unui set de fișiere) în depozit.

Există două tipuri principale de VCS, principala diferență fiind numărul de depozite:

  • Sisteme de control al versiunilor centralizate (CVCS): aici fiecare membru al echipei de proiect primește propriul director de lucru local, cu toate acestea, efectuează modificări într-un singur depozit central.
  • Sisteme de control al versiunilor distribuite (DVCS-uri): în cadrul acestuia, fiecare membru al echipei de proiect primește propriul director de lucru local și directorul Git de unde poate face comite. După ce o persoană face un commit la nivel local, ceilalți membri ai echipei nu pot accesa modificările până când el/ea le împinge în depozitul central. Git este un exemplu de DVCS.

În plus, un depozit Git poate fi gol (un depozit care nu are un director de lucru) sau non-bare (unul cu un director). Arhivele partajate (sau publice sau centrale) ar trebui să fie întotdeauna goale – toate depozitele Github sunt goale.

Învață Controlul versiunilor cu Git

Git este un sistem de control al versiunilor gratuit și deschis, rapid, puternic, distribuit, ușor de utilizat și popular, care este foarte eficient pentru proiecte mari și are un sistem remarcabil de ramificare și îmbinare. Este conceput pentru a gestiona datele mai mult ca o serie de instantanee ale unui mini sistem de fișiere, care este stocat într-un director Git.

Fluxul de lucru din Git este foarte simplu: modificați fișierele din directorul dvs. de lucru, apoi adăugați selectiv doar acele fișiere care s-au schimbat în zona de pregătire, pentru a face parte din următorul dvs. commit.

Odată ce sunteți gata, faceți un commit, care preia fișierele din zona de pregătire și salvează permanent acel instantaneu în directorul Git.

Pentru a instala Git în Linux, utilizați comanda corespunzătoare pentru distribuția dorită:

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

După instalarea Git, se recomandă să spuneți Git cine sunteți, furnizând numele complet și adresa de e-mail, după cum urmează:

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

Pentru a verifica setările Git, utilizați următoarea comandă.

git config --list 

Creează un nou depozit Git

Arhivele partajate sau fluxurile de lucru centralizate sunt foarte frecvente și asta vom demonstra aici. De exemplu, presupunem că ați fost însărcinat să configurați un depozit central la distanță pentru administratorii de sistem/programatorii din diferite departamente din organizația dvs., pentru a lucra la un proiect numit bashscripts, care va fi stocat sub > pe server.

SSH în serverul de la distanță și creați directorul necesar, creați un grup numit sysadmins (adăugați toți membrii echipei de proiect la acest grup, de ex. administrator de utilizator) și setați permisiunile corespunzătoare pe acest director.

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

Apoi inițializați un depozit de proiect complet.

git init --bare /projects/scripts/bashscripts

În acest moment, ați inițializat cu succes un director Git care este facilitatea centrală de stocare a proiectului. Încercați să faceți o listă a directorului pentru a vedea toate fișierele și directoarele de acolo:

ls -la /projects/scripts/bashscripts/

Clonează un depozit Git

Acum clonați depozitul Git partajat de la distanță pe computerul dvs. local prin SSH (puteți clona și prin HTTP/HTTPS dacă aveți un server web instalat și configurat corespunzător, așa cum este și caz cu majoritatea depozitelor publice de pe Github), de exemplu:

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts 

Pentru a-l clona într-un anumit director (~/bin/bashscripts), utilizați comanda de mai jos.

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Acum aveți o instanță locală a proiectului într-un depozit non-bare (cu un director de lucru), puteți crea structura inițială a proiectului (adică adăugați un README.md fișier, subdirectoare pentru diferite categorii de scripturi, de exemplu, recon pentru a stoca scripturi de recunoaștere, sysadmin ro store sysadmin scripts etc.):

cd ~/bin/bashscripts/
ls -la

Verificați un rezumat al stării Git

Pentru a afișa starea directorului dvs. de lucru, utilizați comanda de stare care vă va afișa orice modificări pe care le-ați făcut; ce fișiere nu sunt urmărite de Git; acele schimbări care au fost puse în scenă și așa mai departe.

git status 

Modificări de etapă Git și Commit

Apoi, puneți în scenă toate modificările utilizând comanda add cu comutatorul -A și efectuați commit-ul inițial. Indicatorul -a indică comenzii să pună în aplicare automat fișierele care au fost modificate, iar -m este folosit pentru a specifica un mesaj de confirmare:

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

Publicați comiterile locale în depozitul Git la distanță

În calitate de lider al echipei de proiect, acum că ați creat structura proiectului, puteți publica modificările în depozitul central folosind comanda push, așa cum se arată.

git push origin master

În acest moment, depozitul dvs. local git ar trebui să fie actualizat cu depozitul central al proiectului (origine), puteți confirma acest lucru rulând încă o dată comanda de stare.

git status

De asemenea, vă puteți informa colegii să înceapă să lucreze la proiect prin clonarea depozitului pe computerele lor locale.

Creați o nouă ramură Git

Branching-ul vă permite să lucrați la o caracteristică a proiectului sau să remediați problemele rapid, fără a atinge baza de cod (ramură principală). Pentru a crea o ramură nouă și apoi a trece la ea, utilizați comenzile branch și, respectiv, checkout.

git branch latest
git checkout latest

Alternativ, puteți crea o nouă ramură și puteți trece la ea într-un singur pas folosind comanda de checkout cu marcajul -b.

git checkout -b latest

De asemenea, puteți crea o nouă ramură bazată pe o altă ramură, de exemplu.

git checkout -b latest master

Pentru a verifica în ce ramură vă aflați, utilizați comanda de ramură (un asterisc indică ramura activă):

git branch

După crearea și trecerea la noua ramură, faceți câteva modificări sub ea și faceți câteva comiteri.

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

Îmbinați modificările de la o ramură la alta

Pentru a îmbina modificările din testul de ramură în ramura principală, comutați la ramura principală și faceți îmbinarea.

git checkout master 
git merge test 

Dacă nu mai aveți nevoie de o anumită ramură, o puteți șterge folosind comutatorul -d.

git branch -d test

Descărcați modificările din depozitul central la distanță

Presupunând că membrii echipei dvs. au introdus modificări în depozitul central al proiectului, puteți descărca orice modificări ale instanței locale a proiectului folosind comanda de extragere.

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

Inspectați depozitul Git și efectuați comparații

În această ultimă secțiune, vom acoperi câteva funcții Git utile care țin evidența tuturor activităților care au avut loc în depozitul dvs., permițându-vă astfel să vizualizați istoricul proiectului.

Prima caracteristică este Git log, care afișează jurnalele de comitere:

git log

O altă caracteristică importantă este comanda show care afișează diferite tipuri de obiecte (cum ar fi commit-uri, etichete, arbori etc.):

git show

A treia caracteristică vitală pe care trebuie să o cunoașteți este comanda diff, folosită pentru a compara sau a arăta diferența dintre ramuri, pentru a afișa modificări între directorul de lucru și index, modificări între două fișiere de pe disc și multe altele.

De exemplu, pentru a arăta diferența dintre master și cea mai recentă ramură, puteți rula următoarea comandă.

git diff master latest

Citiți și: 10 cele mai bune alternative Git pentru a găzdui proiecte open source

rezumat

Git permite unei echipe de oameni să lucreze împreună folosind aceleași fișiere, în timp ce înregistrează modificările aduse fișierului (fișierelor) de-a lungul timpului, astfel încât să își poată aminti mai târziu versiuni specifice.

În acest fel, puteți folosi Git pentru a gestiona codul sursă, fișierele de configurare sau orice fișier stocat pe un computer. Poate doriți să consultați documentația Git Online pentru documentație suplimentară.