INTRODUCERE SISTEM Flashcards

1
Q

Ce sunt Sistemele pentru Controlul Versiunii?

A

Instrumente software care ajuta o echipa de dezvoltare sa controleze orice schimbare asupra codului sursa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Care sunt principalele avantaje si beneficii ale SCV?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cum se clasifica sistemele folosite pentru versionarea codului sursa?

A

Sisteme centralizate si sisteme distribuite

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Care este diferenta majora dintre sistemele centralizate si cele distribuite?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Initializarea unui depozit in Git se face prin comanda:

A

git init

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Setarile asupra depozitelor se pot face:

A

Individual per depozit sau global pentru toate depozitele create pe un anumit calculator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Pentru setarea numelui de utilizator si adresa electronica al autorului pe un anumit depozit, se foloseste comanda:

A

git config user.name “Joe Doe”

git config user.email “Joe@mail.com”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Pentru setarea numelui de utilizator si adresa electronica al autorului pentru toate depozitele de pe un calculator, se foloseste comanda:

A

git config -global user.name “Joe Doe”

git config -global user.email “Joe@mail.com”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ce este Git și de ce se utilizează?

A

Git este un sistem de control al versiunilor distribuit, gratuit și open-source. Este utilizat pentru:

  1. Gestionarea schimbărilor codului: Urmărește cine și ce modificări a făcut.
  2. Colaborare eficientă: Permite mai multor dezvoltatori să lucreze pe același proiect.
  3. Revenirea la versiuni anterioare: În caz de erori, codul poate fi readus la starea anterioară.
  4. Sprijin pentru proiecte de toate dimensiunile: Funcționează rapid și eficient, indiferent de complexitatea proiectului.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Ce este un depozit git?

A

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ță.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Ce face comanda git config?

A

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»”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cum se adauga un file in repo?

A

touch [denumire]
nano [denumire]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cum se acceseaza un directoriu?

A

Pt a intra in director: cd [nume director]
Pentru a merge înapoi: cd ../ - te intorci la directoriul anterior

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explică ce este HEAD și care este nr de HEAD ce pot fi prezente în repo.

A

Î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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Ce este un conflict?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cum identifici și rezolvi un conflict în Git?

A

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 («««<, =======,&raquo_space;»»>).

Adaugă fișierul rezolvat:
* Comanda: git add <fișier></fișier>

Finalizează procesul:
* Comanda: git merge –continue

17
Q

Care este funcționalitatea git ls-tree?

A

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.

18
Q

Definește Index

A

Î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.

19
Q

Cum veți crea un depozit git?

A
  • 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.
20
Q

Ce face git init?

A

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]

21
Q

Cum listezi fisierele din director?

A

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.

22
Q

Cum afisezi continutul documentului?

A

Afișarea conținutului unui fișier:
cat [nume_fisier] . Vei vedea tot textul din document afișat direct în terminal.

23
Q

Cum poți rezolva o situație cu un “detached HEAD” în Git?

A

Pentru a rezolva un “detached HEAD” și a salva modificările:

  1. Crează o nouă ramură pentru modificări:
    git checkout -b <nume-ramură></nume-ramură>
  2. Salvează modificările pe noua ramură:
    git commit -m “Salvează modificările”
  3. 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.