INTRODUCERE SISTEM Flashcards
Ce sunt Sistemele pentru Controlul Versiunii?
Instrumente software care ajuta o echipa de dezvoltare sa controleze orice schimbare asupra codului sursa.
Care sunt principalele avantaje si beneficii ale SCV?
- permit mai multor persoane sa lucreze simultan la un singur proiect
- realizeaza integrarea automata a modificarilor aduse de diferiti membrii ai echipe asupra unor fisiere
- ofera acces la partea istorica a proiectului
Cum se clasifica sistemele folosite pentru versionarea codului sursa?
Sisteme centralizate si sisteme distribuite
Care este diferenta majora dintre sistemele centralizate si cele distribuite?
Sistemele centralizate dispun de o singura copie a proiectului, aflata undeva pe un server
Sistemele distribuite propun ideea existentei unei clone a proiectului pe masina fiecarui utilizator
Initializarea unui depozit in Git se face prin comanda:
git init
Setarile asupra depozitelor se pot face:
Individual per depozit sau global pentru toate depozitele create pe un anumit calculator
Pentru setarea numelui de utilizator si adresa electronica al autorului pe un anumit depozit, se foloseste comanda:
git config user.name “Joe Doe”
git config user.email “Joe@mail.com”
Pentru setarea numelui de utilizator si adresa electronica al autorului pentru toate depozitele de pe un calculator, se foloseste comanda:
git config -global user.name “Joe Doe”
git config -global user.email “Joe@mail.com”
Ce este Git și de ce se utilizează?
Git este un sistem de control al versiunilor distribuit, gratuit și open-source. Este utilizat pentru:
- Gestionarea schimbărilor codului: Urmărește cine și ce modificări a făcut.
- Colaborare eficientă: Permite mai multor dezvoltatori să lucreze pe același proiect.
- Revenirea la versiuni anterioare: În caz de erori, codul poate fi readus la starea anterioară.
- Sprijin pentru proiecte de toate dimensiunile: Funcționează rapid și eficient, indiferent de complexitatea proiectului.
Ce este un depozit git?
Un depozit este o structură de fișiere în care git stochează toate fișierele bazate pe proiect. Git poate stoca fișierele pe depozitul local sau la distanță.
Ce face comanda git config?
Pentru a vă configura numele și adresa de e-mail înainte de a utiliza comenzile git, putem rula comenzile de mai jos:
- git config –global user.name”«your_name»”
- git config –global user.email “«your_email»”
Cum se adauga un file in repo?
touch [denumire]
nano [denumire]
Cum se acceseaza un directoriu?
Pt a intra in director: cd [nume director]
Pentru a merge înapoi: cd ../ - te intorci la directoriul anterior
Explică ce este HEAD și care este nr de HEAD ce pot fi prezente în repo.
În Git, conceptul de HEAD se referă la un “indicator” sau “punct de referință” către ultima comitere dintr-o anumită ramură. Practic, Git folosește HEAD pentru a arăta pe ce ramură te afli în prezent și care este ultima modificare (sau comitere) din acea ramură.
- În fiecare depozit Git există mereu un HEAD implicit, de obicei numit master sau main (în funcție de cum e setat în acel depozit).
- Poți crea câte ramuri dorești în Git, deci poți avea mai multe HEAD (câte unul pentru fiecare ramură). Astfel, numărul de HEAD poate fi nelimitat.
- Pentru a merge sau face checkout la un commit înainte de cel mai recent commit, vom folosi git checkout HEAD ~ 1
- Pentru a face uncommit la ultimele 3 commit-uri fără a pierde modificările, vom rula mai întâi git reset HEAD ~ 3. Apoi, putem vedea modificările efectuate în ultimele 3 commit-uri și apoi actualizați-l manual și faceți commit în cele din urmă.
- Pentru a face uncommit la ultimele 3 și, de commituri, elimina modificările, putem rula comanda: git reset –hard HEAD ~ 3. Această comandă va elimina complet toate modificările.
- Pentru a analiza modificările făcute în ultimele 3 commituri, putem rula
git diff HEAD ~ 3 - Pentru a face un nou commit prin revenirea ultimelor 3 commituri, putem rula comanda: git revert –no-commit HEAD ~ 3 … HEAD
Explicație: În Git, comanda git revert este folosită pentru a crea o nouă comitere care anulează modificările unor comiteri anterioare, păstrând în același timp istoricul. Comanda git revert –no-commit HEAD~3…HEAD are rolul de a crea o inversare a ultimelor 3 comiteri fără a realiza imediat o nouă comitere.
Ce este un conflict?
Un conflict în Git apare atunci când două modificări incompatibile sunt efectuate în același fișier, pe aceeași linie sau zonă de cod, și Git nu poate combina automat schimbările.
* Exemple:
1. Când două ramuri separate au modificări la aceeași linie într-un fișier
2. Un fișier este șters într-o ramură, dar a fost modificat în cealaltă.
* Aceste conflicte trebuie rezolvate manual după discuțiile cu echipa, deoarece git nu va putea prezice care și ale cărui schimbări trebuie să aibă prioritate.
Cum identifici și rezolvi un conflict în Git?
Identificarea conflictului: După un merge/rebase eșuat, Git marchează fișierele cu conflicte ca “unmerged.”
* Comanda: git status
Rezolvarea conflictului:
* Editează fișierul afectat pentru a păstra schimbările dorite.
* Șterge marcajele de conflict («««<, =======,»_space;»»>).
Adaugă fișierul rezolvat:
* Comanda: git add <fișier></fișier>
Finalizează procesul:
* Comanda: git merge –continue
Care este funcționalitatea git ls-tree?
Comanda git ls-tree în Git este folosită pentru a vizualiza structura arborelui curent (HEAD) și toate fișierele și directoarele cu permisiunile și codurile lor unice SHA-1.
Definește Index
În Git, Indexul (sau staging area) este o zonă intermediară unde sunt stocate modificările înainte de a fi comise în istoria depozitului. Este ca o „listă de așteptare” a schimbărilor pe care dorești să le incluzi în următoarea comitere.
Adăugare în Index: Comanda git add mută modificările din zona de lucru în Index, marcându-le pentru următoarea comitere.
Cum veți crea un depozit git?
- Aveți git instalat în sistemul dvs.
- Apoi creați un folder pentru proiect și apoi, rulați git init.
- Făcând acest lucru se va crea un fișier** .git** în folderul de proiect care indică faptul că depozitul a fost creat.
Ce face git init?
Git init poate converti un folder existent într-un Git
repozitoriu.
Când utilizați git init, se creează un subdirector .git în directorul de lucru . Acesta conține toate metadatele Git necesare pentru noul depozit.
Puteți folosi git init în câteva moduri.
* Dacă aveți o structură de foldere existentă cu fișiere și cod în interiorul acesteia si doriți să îl transformați într-un depozit git, puteți face cu comanda: git init
* Dacă nu ați creat un folder, puteți lansa următoarea comandă pentru a crea folderul și a-l inițializa ca un depozit git: git init [ProiectNou]
Cum listezi fisierele din director?
ls pentru a lista fișierele și directoarele din directorul curent.
Este folosită pentru a naviga și a vedea structura fișierelor dintr-un director.
Cum afisezi continutul documentului?
Afișarea conținutului unui fișier:
cat [nume_fisier] . Vei vedea tot textul din document afișat direct în terminal.
Cum poți rezolva o situație cu un “detached HEAD” în Git?
Pentru a rezolva un “detached HEAD” și a salva modificările:
-
Crează o nouă ramură pentru modificări:
git checkout -b <nume-ramură></nume-ramură> -
Salvează modificările pe noua ramură:
git commit -m “Salvează modificările” -
Continua să lucrezi pe această ramură sau fuzionează cu o ramură existentă:
git merge <ramură-existentă></ramură-existentă>
Acest proces asigură că modificările nu sunt pierdute.