2. MODALITĂŢI AD-HOC DE CONTROL
AL VERSIUNILOR
(C) Sursa imaginii: www.phdcomics.com
3. MODALITĂȚI AD-HOC DE CONTROL
AL VERSIUNILOR
Care ar fi unele dezavantaje ale acestei metode?
Pot apărea complicații privind integritatea: dacă am vrut
să modific data_2010.05.28.dat, dar din greșeală am
modificat și am salvat data_2010.05.27.dat.
Nu permite lucrul colaborativ la unul și același fișier:
data_2010.05.27_radu.dat și data_2010.05.27_irina.dat
(cum să integrez modificările acestor fișiere în unul
singur?).
4. MODALITĂȚI AD-HOC DE CONTROL
AL VERSIUNILOR
public int factorial(int n)
{
return n * factorial(n1);
}
5. MODALITĂȚI AD-HOC DE CONTROL
AL VERSIUNILOR
public int factorial(int n)
{
if (n == 0)
return 1;
else
return n * factorial(n1);
}
6. MODALITĂȚI AD-HOC DE CONTROL
AL VERSIUNILOR
public int factorial(int n)
{
if (n == 0) //+RD20151017
return 1; //+RD20151017
else //+RD20151017
return n * factorial(n1);
}
7. MODALITĂȚI AD-HOC DE CONTROL
AL VERSIUNILOR
public int factorial(int n)
{
//if (n == 0) //RD20151018
if (n <= 0) //+RD20151018
return 1; //+RD20151017
else //+RD20151017
return n * factorial(n1);
}
8. MODALITĂȚI AD-HOC DE CONTROL
AL VERSIUNILOR
Care ar fi unele dezavantaje ale acestei metode?
9. CONTROLUL VERSIUNILOR CU GIT
(C) Sursa imaginii: http://git-scm.com/book/en/v2/Getting-Started-Git-Basics#Snapshots,-Not-
Differences
10. GIT ESTE UN SISTEM DISTRIBUIT...
(C) Sursa imaginii: http://thepilcrow.net/explaining-basic-concepts-git-and-github/
11. ... ȘI NU CENTRALIZAT
(C) Sursa imaginii: http://thepilcrow.net/explaining-basic-concepts-git-and-github/
12. FOARTE SCURT ISTORIC
Git îl are ca autor pe Linus Torvalds și a fost elaborat în 2005
cu scopul de a înlocui sistemul de control al versiunilor
folosit până atunci la dezvoltarea nucleului Linux.
relatează că
numărul de persoane implicate în dezvoltarea acestuia
variază între 5000 și 6000, iar numărul de linii de cod a
versiunii 3.10 în 2013 era 15,803,499.
Articolul din Wikipedia despre nucleul Linux
Nu știu care a fost motivul exact al alegerii numelui, dar în
slangul limbii engleze britanice „git” înseamnă „persoană
neplăcută” („unpleasant person”).
14. INSTALARE GIT
Într-un sistem GNU/Linux bazat pe Debian:
Pentru Mac OS X, Windows, Linux și Solaris:
doar pentru lucru în linia de comandă (fără interfață
grafică):
cu interfață grafică
$ sudo aptget install git
http://git-scm.com/downloads
https://git-scm.com/downloads/guis
15. sau
Formatul general:
CREAREA UNUI PROIECT GIT NOU
$ git init gitworkshop
$ cd gitworkshop
$ mkdir gitworkshop
$ cd gitworkshop
$ git init
$ git init [dosar]
Puteți executa acestă comandă de câte ori doriți pe un
proiect deja existent.
16. CREAREA UNUI PROIECT GIT NOU
Nu uităm să specificăm autorul proiectului și ulterioarelor
modificări:
$ git config user.name "Numele dvs."
$ git config user.email "posta@example.com"
17. DOSARUL GIT, INDEX-UL ȘI DOSARUL
DE LUCRU
Toate versiunile proiectului sunt stocate în dosarul git (git
dir).
Versiunea actuală a proiectului (nememorizată) se află în
dosarul de lucru (work dir).
Versiunea care urmează să fie memorată se află în index
(stage sau index).
O metaforă: dosarul de lucru este prezentul, dosarul git -
trecutul, iar index-ul - este clipa între prezent și trecut.
18. PRIMUL FIȘIER ÎN PROIECT
$ touch README
$ echo 'Primul proiect folosind Git' > README
$ git status
23. DOSARUL GIT, INDEX-UL ȘI DOSARUL
DE LUCRU
după comanda git add README avem:
Git Dir Stage Work Dir
README README
24. DOSARUL GIT, INDEX-UL ȘI DOSARUL
DE LUCRU
după comanda git commit -m avem:
Git Dir Stage Work Dir
README README README
25. sau
O PRIVIRE ASUPRA ISTORIEI
PROIECTULUI
Vizualizarea tuturor versiunilor proiectului
$ git log
sau
$ git log oneline
$ git log oneline nameonly
26. O PRIVIRE ASUPRA ISTORIEI
PROIECTULUI
Vizualizarea conținutului fișierului dintr-o versiune
$ git show <versiune>:README
Vizualizrea autorilor care au lucrat la un fișier per rând
$ git blame README
27. ÎNCĂRCĂM PROIECTUL PE GITHUB
1. Treceți pe pagina .
2. Creați-vă un cont folosind butonul Sign up (colțul
dreapta-sus).
3. Creați un proiect nou cu numele git-workshop folosind
butonul cu simbolul „+” apoi „New repository” (colțul
dreapta-sus).
https://github.com/
28. ÎNCĂRCĂM PROIECTUL PE GITHUB
4. Reveniți în linia de comandă la proiectul local și
5. Treceți pe pagina https://github.com/<utilizator>/git-
workshop și începeți să investigați posibilitățile interfeței situ
GitHub.
$ git remote add origin https://github.com/<utilizator>/gitworks
$ git push u origin master
29. ULTIMUL EXERCIȚIU
1. Treceți pe pagina
.
2. Preluați proiectul folosind butonul Fork (colțul dreapta-
sus).
3. Clonați proiectul local
4. Adăugați un comentariu despre atelier în fișierul
feedback.html conform modelului.
https://github.com/vundicind/code-
week
$ git clone https://github.com/<utilizator>/codeweek.git
30. ULTIMUL EXERCIȚIU
5. Comiteți și încărcați modificările pe server
6. Treceți înapoi pe GitHub și folosind butonul „Compare,
review, create a pull request” (butonul verde din stânga
denumirii selectorului de ramură) creați o cerere de
integrare a schimbărilor în proiectul părinte (butonul
„Create pull request”).
$ git commit a
$ git push origin master
31. Eu la rândul meu:
ULTIMUL EXERCIȚIU
1. voi accepta toate cererile
2. și voi integra ramura master în ramura gh-pages pentru
ca schimbările să fie vizibile pe
http://vundicind.github.io/code-week
32. Vă mulțumesc!
Sper că va plăcut acest atelier și că plăcerea >= plăcerea pe
care am avut-o pregătindu-mă de acest atelier.
Câteva legături către materiale elaborate de mine:
Sursele acestei prezentări
Întrebări frecvente legate de Git
Traducerea în română a tutorialului de pe http://git-
lectures.github.io/
Alte materile în română:
http://blog.infoeducatie.ro/tutorial/2015/04/14/github-
101.html
http://rolisz.ro/2011/06/24/git-tutorial/