Pro Git ⬇ PDF
Pro Git · Eduspaces ·
https://eduspaces.ro/s/pro-git/capitol/s-1/

🚀 1. Getting Started

Controlul versiunilor, scurta istorie a lui Git, cele trei stări, instalarea și configurarea inițială.

nivel 1

Bază (10)

1
Version control· concept · p. 16

Sistem care înregistrează modificările unui fișier sau ale unui set de fișiere în timp, astfel încât să poți reveni ulterior la anumite versiuni.

2
Version Control System· sistem · p. 16

VCS: unealta care face controlul versiunilor — readuce fișiere sau tot proiectul la o stare anterioară, compară modificările în timp, arată cine a modificat ceva și când; dacă pierzi fișiere, le poți recupera ușor.

3
Centralized Version Control System· sistem · p. 17

CVCS: un singur server conține toate fișierele versionate, iar clienții extrag (check out) fișierele de acolo (CVS, Subversion, Perforce). Ușor de administrat, dar serverul central este un punct unic de eșec.

4
Distributed Version Control System· sistem · p. 18

DVCS (Git, Mercurial, Darcs): clienții nu extrag doar ultimul snapshot, ci oglindesc complet depozitul, cu tot istoricul; orice clonă este o copie de rezervă completă și se pot folosi mai multe depozite la distanță.

5
Snapshot· concept · p. 20

Git își vede datele ca pe o serie de instantanee ale unui mini sistem de fișiere: la fiecare commit „fotografiază” toate fișierele și păstrează o referință la acel snapshot; fișierele nemodificate nu se stochează din nou, ci doar se leagă de versiunea identică deja stocată.

6
Checksum· concept · p. 22

În Git totul primește o sumă de control înainte de a fi stocat și este apoi referit prin ea: nu se poate schimba conținutul unui fișier sau director fără ca Git să afle, iar coruperea datelor este detectată.

7
Three states· concept · p. 22

Cele trei stări principale în care pot fi fișierele în Git: modified, staged și committed; ele corespund celor trei secțiuni ale unui proiect: working tree, staging area și directorul Git.

8
Git directory· structură · p. 23

Locul unde Git stochează metadatele și baza de obiecte a proiectului (subdirectorul .git); este partea cea mai importantă și cea care se copiază când clonezi un depozit.

9
git config· comandă · p. 27

Unealta care citește și setează variabilele de configurare, păstrate pe trei niveluri: sistem (--system, [path]/etc/gitconfig), utilizator (--global, ~/.gitconfig) și depozit (--local, .git/config); fiecare nivel îl suprascrie pe cel anterior. git config --list arată setările.

10
Git identity· configurare · p. 28

Primul lucru de făcut după instalare: setarea numelui și a adresei de e-mail (user.name, user.email, de obicei cu --global); fiecare commit folosește aceste informații, incluse imuabil în commit-uri.

nivel 2

Aprofundare (8)

1
Local Version Control System· sistem · p. 16

VCS local: o bază de date simplă, pe calculatorul propriu, care păstrează toate modificările fișierelor; exemplul tipic este RCS. Înlocuiește obiceiul, predispus la erori, de a copia fișierele în alte directoare.

2
Single point of failure· concept · p. 18

Dezavantajul principal al sistemelor centralizate: dacă serverul central cade, nimeni nu mai poate colabora sau salva versiuni; dacă discul lui se corupe fără copii de rezervă, se pierde tot istoricul.

3
Delta-based version control· concept · p. 20

Modul în care majoritatea celorlalte sisteme (CVS, Subversion, Perforce) stochează informația: un set de fișiere și modificările aduse fiecăruia în timp, spre deosebire de snapshot-urile lui Git.

4
Basic Git workflow· flux de lucru · p. 23

Ciclul de bază: modifici fișiere în working tree, pui în staging doar modificările care vrei să intre în următorul commit, apoi faci commit, care stochează permanent în directorul Git snapshot-ul din staging area.

5
Command line· unealtă · p. 24

Interfața în linie de comandă a lui Git, folosită în toată cartea: singurul loc unde poți rula toate comenzile Git (interfețele grafice implementează doar o parte).

6
Default editor· configurare · p. 28

Editorul de text pe care Git îl lansează când ai de scris un mesaj (de exemplu la commit); se setează cu core.editor, altfel se folosește editorul implicit al sistemului (variabila EDITOR).

7
Default branch name· configurare · p. 29

Git creează implicit ramura master la git init; din versiunea 2.28 se poate alege alt nume pentru ramura inițială (de exemplu main) cu init.defaultBranch. GitHub a trecut la main în 2020.

8
git help· comandă · p. 30

Trei moduri echivalente de a obține pagina de manual (manpage) a unei comenzi: git help <verb>, git <verb> --help și man git-<verb>; opțiunea -h dă un rezumat scurt al opțiunilor.

nivel 3

Detaliu (2)