Git este cel mai utilizat sistem de control al versiunilor software. Git este un proiect open source matur si intretinut activ. A fost dezvoltat initial in 2005 de Linus Torvalds, celebrul creator al kernel-ului sistemului de operare Linux. Un numar uimitor de proiecte software se bazeaza pe Git pentru controlul versiunilor, inclusiv proiecte comerciale si open source. De asemenea, functioneaza bine pe o gama larga de sisteme de operare (Linux, POSIX, Windows, OS X) si IDE (Integrated Development Environments). Vom detalia in continuare ce este Git si in ce mod il puteti utiliza.
Ce este Git?
Avand o arhitectura distribuita, Git este un exemplu de DVCS (Distributed Version Control System). In loc sa detina un singur loc pentru istoricul versiunilor complete ale software-ului (asa cum era in cazul sistemelor de control al versiunilor CVS sau Subversion), in Git, copia de lucru a fiecarui dezvoltator al codului este, de asemenea, un repository care poate contine istoricul complet al tuturor modificarilor. Astfel, puteti inregistra schimbarile facute unui fisier sau set de fisiere cu care putem restaura o versiune mai veche a fisierului, puteti compara diverse modificari efectuate in timp, sau puteti vedea cine a modificat un anumit proiect cu scopul de a detecta sursa unei probleme.
Pe langa arhitectura distribuita, Git a fost proiectat avand in vedere performanta, securitatea si flexibilitatea.
Performanta
- Modificarile, ramificarea, combinarea si compararea versiunilor anterioare sunt optimizate pentru performanta
- Cunoasterea aprofundata a atributelor comune dicteaza modul in care sunt modificate fisierele si care sunt tiparele de acces
- Git nu se lasa pacalit de numele fisierelor atunci cand determina care ar trebui sa fie stocarea si istoricul versiunilor din arborele fisierelor. In schimb, Git se concentreaza asupra continutului fisierului in sine, tinand cont de faptul ca fisierele sunt deseori redenumite, impartite si rearanjate.
- Formatul fisierelor din repository-ul Git foloseste o combinatie de codificare delta (stocand diferentele de continut), si comprimare, stocand in mod explicit continutul directorului si metadatele obiectelor legate de versiuni.
- Fiind un sistem distribuit, adauga plusuri importante perfomantei
Securitate
- Git a fost proiectat avand ca prioritate integritatea codului sursa gestionat
- Continutul fisierelor, relatiile dintre fisiere si directoare, versiuni, taguri si commit-uri, toate aceste obiecte din repository-ul Git sunt securizate cu un algoritm de hash securizat criptografic numit SHA1. Aceasta protejeaza codul si istoricul modificarilor atat impotriva schimbarilor accidentale, cat si a celor rau intentionate si asigura ca istoricul poate fi urmarit integral.
- Cu Git, puteti fi sigur ca aveti un istoric de continut autentic al codului sursa.
- Alte sisteme de control al versiunii nu detin protectie impotriva modificarilor secrete la o data ulterioara. Aceasta poate fi o vulnerabilitate serioasa a securitatii informatiilor pentru orice organizatie care se bazeaza pe dezvoltarea de software.
Flexibilitate
- Git este flexibil in mai multe privinte: in sprijinul diferitelor tipuri de fluxuri de lucru neliniare de dezvoltare, in eficienta sa atat in proiecte mici, cat si in proiecte mari si in compatibilitatea sa cu multe sisteme si protocoale existente.
- Este proiectat sa suporte branch-urile noi si tag-urile, iar operatiunile care le afecteaza pe acestea (imbinare, revenirea) sunt stocate de asemenea in istoricul schimbarilor. Nu toate sistemele de control al versiunilor prezinta acest nivel avansat de tracking.
Operatiuni de baza Git
- Initialize (crearea unui repository)
- Add (adaugarea unuia sau a mai multor fisiere)
- Commit (aduceti modificari head-ului)
- Pull (aduceti si imbinati modificarile de pe serverul de la distanta in directorul dvs. de lucru)
- Push (trimiteti modificari branch-ului principal al repository-ului)
Operatiuni avansate Git
- Branching (pointere specifice unui commit)
- Merging (combinarea schimbarilor efectuate pe mai multe branch-uri)
- Rebasing (integrarea modificarilor de la un branch la altul)
Daca utilizati Git pe un computer care ruleaza Windows, este recomandat sa utilizati Git Bash, o interfata care va permite executarea liniilor de comanda pe Windows, in plus, ofera functii de rulare a scripturilor automate.
Cum functioneaza Git
Iata o prezentare sumara a modului in care functioneaza Git:
- Creati un „repository” (proiect) cu un instrument de gazduire git (cum ar fi Bitbucket)
- Copiati (sau clonati) repository-ul pe computerul dvs. local
- Adaugati un fisier la repo-ul local si „comiteti” (salvati) modificarile
- „Trimiteti” (push) modificarile la branch-ul principal
- Faceti o modificare fisierului cu un instrument de gazduire git si comiteti
- „Aduceti” (pull) modificarile pe computerul local
- Creati un „branch” (versiune), faceti o modificare, comiteti modificarea
- Deschideti un „pull request” (propuneti modificari la branch-ul principal)
- „Imbinati” (merge) branch-ul cu branch-ul principal
Comenzi Git
Lista completa a tuturor comenzilor Git o puteti accesa aici: Git commands.
Resurse utile:
- Este Git disponibil pe serverele Linux?
- Cum pot folosi Git?
- Cum se configureaza un client Git?
- Cum instalez Git in CentOS 7?
Resurse pentru programatori:

