This shows you the differences between two versions of the page.
poo-is-ab:laboratoare:01 [2025/09/25 17:06] razvan.cristea0106 [GIT și GitHub] |
poo-is-ab:laboratoare:01 [2025/10/01 12:20] (current) razvan.cristea0106 [GIT și GitHub] |
||
---|---|---|---|
Line 9: | Line 9: | ||
* recunoască asemănările dintre limbajele C și C++ | * recunoască asemănările dintre limbajele C și C++ | ||
* scrie un program simplu în limbajul C++ | * scrie un program simplu în limbajul C++ | ||
- | * creeze un repository pe GitHub | ||
* utilizeze comenzi elementare de git în terminal | * utilizeze comenzi elementare de git în terminal | ||
+ | * creeze un repository pe contul personal de GitHub | ||
==== Introducere ==== | ==== Introducere ==== | ||
Line 33: | Line 33: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 3; // variabila de tip intreg | + | int x = 3; // variabila de tip intreg |
- | float nr = 3.5f; // variabila de tip float | + | float nr = 3.5f; // variabila de tip float |
- | double y = 10.6; // variabila de tip double | + | double y = 10.6; // variabila de tip double |
- | char c = 'q'; // variabila de tip caracter | + | char c = 'q'; // variabila de tip caracter |
- | long w = 1000000000; // variabila de tip long | + | long w = 1000000000; // variabila de tip long |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 50: | Line 50: | ||
int main() | int main() | ||
{ | { | ||
- | int a = 8; | + | int a = 8; |
- | int b = 5; | + | int b = 5; |
- | int suma = a + b; | + | int suma = a + b; |
- | int produs = a * b; | + | int produs = a * b; |
- | int diferenta = a - b; | + | int diferenta = a - b; |
- | float impartire = (float) a / b; // va avea valoarea 1.6 | + | float impartire = (float)a / b; // va avea valoarea 1.6 |
- | int rest = a % b; // calculam restul impartirii lui a la b | + | int rest = a % b; // calculam restul impartirii lui a la b |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 75: | Line 75: | ||
<code cpp> | <code cpp> | ||
- | if (conditie1) | + | if (conditie1) |
{ | { | ||
- | // bloc de cod | + | // bloc de cod |
} | } | ||
else if (conditie2) | else if (conditie2) | ||
{ | { | ||
- | // bloc de cod | + | // bloc de cod |
} | } | ||
else if (conditie3) | else if (conditie3) | ||
{ | { | ||
- | // bloc de cod | + | // bloc de cod |
} | } | ||
... | ... | ||
else | else | ||
{ | { | ||
- | // bloc de cod | + | // bloc de cod |
} | } | ||
</code> | </code> | ||
Line 99: | Line 99: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 13; | + | int x = 13; |
- | int estePar = -1; // variabila care are valoarea 0 daca numarul este impar si 1 daca este par | + | int estePar = -1; // variabila care are valoarea 0 daca numarul este impar si 1 daca este par |
- | if (x % 2 == 0) | + | if (x % 2 == 0) |
- | { | + | { |
- | estePar = 1; | + | estePar = 1; |
- | } | + | } |
- | else | + | else |
- | { | + | { |
- | estePar = 0; | + | estePar = 0; |
- | } | + | } |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 139: | Line 139: | ||
int main() | int main() | ||
{ | { | ||
- | int n = 4; | + | int n = 4; |
- | switch (n) | + | switch (n) |
- | { | + | { |
- | case 0: | + | case 0: |
- | n++; | + | n++; |
- | break; | + | break; |
- | case 1: | + | case 1: |
- | n = n * 5 + 1; | + | n = n * 5 + 1; |
- | break; | + | break; |
- | case 2: | + | case 2: |
- | n--; | + | n--; |
- | break; | + | break; |
- | case 3: | + | case 3: |
- | n *= 5; | + | n *= 5; |
- | break; | + | break; |
- | case 4: | + | case 4: |
- | n = n - 2 + n++ + n * 2; | + | n = n - 2 + n++ + n * 2; |
- | break; | + | break; |
- | default: | + | default: |
- | n = 0; | + | n = 0; |
- | break; | + | break; |
- | } | + | } |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 181: | Line 181: | ||
for (start; conditie de continuare; pas) | for (start; conditie de continuare; pas) | ||
{ | { | ||
- | // bloc de cod care se execută | + | // bloc de cod care se execută |
} | } | ||
</code> | </code> | ||
Line 190: | Line 190: | ||
int main() | int main() | ||
{ | { | ||
- | int vector[10] = { 2, 4, 1, -4, 8, 10, 3, -5 }; | + | int vector[10] = { 2, 4, 1, -4, 8, 10, 3, -5 }; |
- | int nrElemente = 8; | + | int nrElemente = 8; |
- | for (int index = 0; index < nrElemente; index++) | + | for (int index = 0; index < nrElemente; index++) |
- | { | + | { |
- | vector[index] += 5; // echivalent cu a scrie vector[index] = vector[index] + 5; | + | vector[index] += 5; // echivalent cu a scrie vector[index] = vector[index] + 5; |
- | } | + | } |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 211: | Line 211: | ||
while (expresie) | while (expresie) | ||
{ | { | ||
- | // bloc de cod care se execută | + | // bloc de cod care se execută |
} | } | ||
</code> | </code> | ||
Line 220: | Line 220: | ||
int main() | int main() | ||
{ | { | ||
- | int vector[10] = { 2, 4, 1, -4, 8, 10, 3, -5 }; | + | int vector[10] = { 2, 4, 1, -4, 8, 10, 3, -5 }; |
- | int nrElemente = 8; | + | int nrElemente = 8; |
- | int index = 0; | + | int index = 0; |
- | while (index != nrElemente) | + | while (index != nrElemente) |
- | { | + | { |
- | vector[index] += 5; | + | vector[index] += 5; |
- | index++; | + | index++; |
- | } | + | } |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 251: | Line 251: | ||
int main() | int main() | ||
{ | { | ||
- | int vector[10] = { 2, 4, 1, -4, 8, 10, 3, -5 }; | + | int vector[10] = { 2, 4, 1, -4, 8, 10, 3, -5 }; |
- | int nrElemente = 8; | + | int nrElemente = 8; |
- | int index = 0; | + | int index = 0; |
- | do | + | do |
- | { | + | { |
- | vector[index] += 5; | + | vector[index] += 5; |
- | index++; | + | index++; |
- | } while (index != nrElemente); | + | } while (index != nrElemente); |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 277: | Line 277: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 8; | + | int x = 8; |
- | for ( ; ; ) | + | for (; ; ) |
- | { | + | { |
- | x = x * 10; | + | x = x * 10; |
- | } | + | } |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 299: | Line 299: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 10; | + | int x = 10; |
- | int* ptr = &x; | + | int* ptr = &x; |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 317: | Line 317: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 10; | + | int x = 10; |
- | int y = 2; | + | int y = 2; |
- | int* ptr = &x, & y; // eroare de compilare un pointer nu poate arata catre 2 adrese simultan | + | int* ptr = &x, & y; // eroare de compilare un pointer nu poate arata catre 2 adrese simultan |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 352: | Line 352: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 10; | + | int x = 10; |
- | int* ptr = &x; // declararea unei variabile de tip pointer la int si initializarea acesteia cu adresa lui x | + | int* ptr = &x; // declararea unei variabile de tip pointer la int si initializarea acesteia cu adresa lui x |
+ | int y = *ptr; // dereferentierea pointerului ptr si stocarea valorii in variabila y (echivalent cu a scrie direct int y = x;) | ||
- | int y = *ptr; // dereferentierea pointerului ptr si stocarea valorii in variabila y (echivalent cu a scrie direct int y = x;) | + | return 0; |
- | + | ||
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 368: | Line 367: | ||
int main() | int main() | ||
{ | { | ||
- | int x = 10; | + | int x = 10; |
- | int* ptr = &x; | + | int* ptr = &x; |
- | *ptr = 4; | + | *ptr = 4; |
- | x -= 2; | + | x -= 2; |
- | *ptr *= 2; | + | *ptr *= 2; |
- | *ptr += 10; | + | *ptr += 10; |
- | // care este valoarea lui x dupa ce s-au executat toate liniile de mai sus | + | // care este valoarea lui x dupa ce s-au executat toate liniile de mai sus |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 387: | Line 386: | ||
int main() | int main() | ||
{ | { | ||
- | int* ptr = NULL; | + | int* ptr = NULL; |
- | + | return 0; | |
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 469: | Line 467: | ||
int dif = diferenta(x, y); | int dif = diferenta(x, y); | ||
- | |||
return 0; | return 0; | ||
} | } | ||
Line 492: | Line 489: | ||
interschimbare(x, y); // interschimbarea se realizeaza doar la nivelul functiei (x = 5, y = 21) | interschimbare(x, y); // interschimbarea se realizeaza doar la nivelul functiei (x = 5, y = 21) | ||
- | |||
return 0; | return 0; | ||
} | } | ||
Line 526: | Line 522: | ||
interschimbare(&x, &y); // modificarile se vor rasfrange asupra lui x si y (x = 21, y = 5) | interschimbare(&x, &y); // modificarile se vor rasfrange asupra lui x si y (x = 21, y = 5) | ||
- | |||
return 0; | return 0; | ||
} | } | ||
Line 540: | Line 535: | ||
void afisareVector(int* v, int* n) | void afisareVector(int* v, int* n) | ||
{ | { | ||
- | for (int index = 0; index < *n; index++) | + | for (int index = 0; index < *n; index++) |
- | { | + | { |
- | std::cout << v[index] << " "; | + | std::cout << v[index] << " "; |
- | } | + | } |
} | } | ||
int main() | int main() | ||
{ | { | ||
- | int nrElemente = 10; | + | int nrElemente = 10; |
- | int vec[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; | + | int vec[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; |
- | afisareVector(vec, &nrElemente); // sau un apel echivalent afisareVector(&vec[0], &nrElemente); | + | afisareVector(vec, &nrElemente); // sau un apel echivalent afisareVector(&vec[0], &nrElemente); |
- | + | return 0; | |
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 570: | Line 564: | ||
void func() | void func() | ||
{ | { | ||
- | // bloc de cod | + | // bloc de cod |
} | } | ||
int main() | int main() | ||
{ | { | ||
- | std::cout << func << '\n'; | + | std::cout << func << '\n'; |
- | + | return 0; | |
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 592: | Line 585: | ||
void func() | void func() | ||
{ | { | ||
- | // bloc de cod | + | // bloc de cod |
} | } | ||
int main() | int main() | ||
{ | { | ||
- | void (*functionPtr)() = func; // declararea si initializarea unui function pointer cu adresa functiei func | + | void (*functionPtr)() = func; // declararea si initializarea unui function pointer cu adresa functiei func |
- | std::cout << func << '\n'; | + | std::cout << func << '\n'; |
- | std::cout << functionPtr << '\n'; // afiseaza aceeasi adresa cu cea de la linia anterioara | + | std::cout << functionPtr << '\n'; // afiseaza aceeasi adresa cu cea de la linia anterioara |
- | return 0; | + | return 0; |
} | } | ||
</code> | </code> | ||
Line 617: | Line 610: | ||
void interschimbare(int* a, int* b) | void interschimbare(int* a, int* b) | ||
{ | { | ||
- | if (a == NULL || b == NULL) | + | if (a == NULL || b == NULL) |
- | { | + | { |
- | return; | + | return; |
- | } | + | } |
- | int auxiliar = *a; | + | int auxiliar = *a; |
- | *a = *b; | + | *a = *b; |
- | *b = auxiliar; | + | *b = auxiliar; |
} | } | ||
void sortareVectorCrescator(int* vector, int* nrElemente) | void sortareVectorCrescator(int* vector, int* nrElemente) | ||
{ | { | ||
- | for (int i = 0; i < *nrElemente - 1; i++) | + | for (int i = 0; i < *nrElemente - 1; i++) |
- | { | + | { |
- | for (int j = i + 1; j < *nrElemente; j++) | + | for (int j = i + 1; j < *nrElemente; j++) |
- | { | + | { |
- | if (vector[i] > vector[j]) | + | if (vector[i] > vector[j]) |
- | { | + | { |
- | interschimbare(&vector[i], &vector[j]); | + | interschimbare(&vector[i], &vector[j]); |
- | } | + | } |
- | } | + | } |
- | } | + | } |
} | } | ||
void sortareVectorDescrescator(int* vector, int* nrElemente) | void sortareVectorDescrescator(int* vector, int* nrElemente) | ||
{ | { | ||
- | for (int i = 0; i < *nrElemente - 1; i++) | + | for (int i = 0; i < *nrElemente - 1; i++) |
- | { | + | { |
- | for (int j = i + 1; j < *nrElemente; j++) | + | for (int j = i + 1; j < *nrElemente; j++) |
- | { | + | { |
- | if (vector[i] < vector[j]) | + | if (vector[i] < vector[j]) |
- | { | + | { |
- | interschimbare(&vector[i], &vector[j]); | + | interschimbare(&vector[i], &vector[j]); |
- | } | + | } |
- | } | + | } |
- | } | + | } |
} | } | ||
void afisareVector(int* vector, int* nrElemente) | void afisareVector(int* vector, int* nrElemente) | ||
{ | { | ||
- | for (int index = 0; index < *nrElemente; index++) | + | for (int index = 0; index < *nrElemente; index++) |
- | { | + | { |
- | std::cout << vector[index] << ' '; | + | std::cout << vector[index] << ' '; |
- | } | + | } |
- | std::cout << '\n'; | + | std::cout << '\n'; |
} | } | ||
int main() | int main() | ||
{ | { | ||
- | int vector[10] = { 2, 1, 4, -3, 0, 5, -1, 8, 10, 9 }; | + | int vector[10] = { 2, 1, 4, -3, 0, 5, -1, 8, 10, 9 }; |
- | int nrElemente = 10; | + | int nrElemente = 10; |
- | std::cout << "Vectorul sortat crescator este: "; | + | std::cout << "Vectorul sortat crescator este: "; |
- | sortareVectorCrescator(vector, &nrElemente); | + | sortareVectorCrescator(vector, &nrElemente); |
- | afisareVector(vector, &nrElemente); | + | afisareVector(vector, &nrElemente); |
- | std::cout << "\nVectorul sortat descrescator este: "; | + | std::cout << "\nVectorul sortat descrescator este: "; |
- | sortareVectorDescrescator(vector, &nrElemente); | + | sortareVectorDescrescator(vector, &nrElemente); |
- | afisareVector(vector, &nrElemente); | + | afisareVector(vector, &nrElemente); |
- | + | return 0; | |
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 692: | Line 684: | ||
void interschimbare(int* a, int* b) | void interschimbare(int* a, int* b) | ||
{ | { | ||
- | if (a == NULL || b == NULL) | + | if (a == NULL || b == NULL) |
- | { | + | { |
- | return; | + | return; |
- | } | + | } |
- | int auxiliar = *a; | + | int auxiliar = *a; |
- | *a = *b; | + | *a = *b; |
- | *b = auxiliar; | + | *b = auxiliar; |
} | } | ||
bool ordonareCrescatoare(int a, int b) | bool ordonareCrescatoare(int a, int b) | ||
{ | { | ||
- | return a < b; | + | return a < b; |
} | } | ||
bool ordonareDescrescatoare(int a, int b) | bool ordonareDescrescatoare(int a, int b) | ||
{ | { | ||
- | return a > b; | + | return a > b; |
} | } | ||
void sortareVector(int* vector, int* nrElemente, bool (*comparator)(int, int)) | void sortareVector(int* vector, int* nrElemente, bool (*comparator)(int, int)) | ||
{ | { | ||
- | for (int i = 0; i < *nrElemente - 1; i++) | + | for (int i = 0; i < *nrElemente - 1; i++) |
- | { | + | { |
- | for (int j = i + 1; j < *nrElemente; j++) | + | for (int j = i + 1; j < *nrElemente; j++) |
- | { | + | { |
- | if (comparator(vector[i], vector[j]) == false) | + | if (comparator(vector[i], vector[j]) == false) |
- | { | + | { |
- | interschimbare(&vector[i], &vector[j]); | + | interschimbare(&vector[i], &vector[j]); |
- | } | + | } |
- | } | + | } |
- | } | + | } |
} | } | ||
void afisareVector(int* vector, int* nrElemente) | void afisareVector(int* vector, int* nrElemente) | ||
{ | { | ||
- | for (int index = 0; index < *nrElemente; index++) | + | for (int index = 0; index < *nrElemente; index++) |
- | { | + | { |
- | std::cout << vector[index] << ' '; | + | std::cout << vector[index] << ' '; |
- | } | + | } |
- | std::cout << '\n'; | + | std::cout << '\n'; |
} | } | ||
int main() | int main() | ||
{ | { | ||
- | int vector[10] = { 2, 1, 4, -3, 0, 5, -1, 8, 10, 9 }; | + | int vector[10] = { 2, 1, 4, -3, 0, 5, -1, 8, 10, 9 }; |
- | int nrElemente = 10; | + | int nrElemente = 10; |
- | std::cout << "Vectorul sortat crescator este: "; | + | std::cout << "Vectorul sortat crescator este: "; |
- | sortareVector(vector, &nrElemente, ordonareCrescatoare); | + | sortareVector(vector, &nrElemente, ordonareCrescatoare); |
- | afisareVector(vector, &nrElemente); | + | afisareVector(vector, &nrElemente); |
- | std::cout << "\nVectorul sortat descrescator este: "; | + | std::cout << "\nVectorul sortat descrescator este: "; |
- | sortareVector(vector, &nrElemente, ordonareDescrescatoare); | + | sortareVector(vector, &nrElemente, ordonareDescrescatoare); |
- | afisareVector(vector, &nrElemente); | + | afisareVector(vector, &nrElemente); |
- | + | return 0; | |
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 762: | Line 753: | ||
=== Variabile constante === | === Variabile constante === | ||
- | La fel ca în C, în C++ putem declara variabile constante folosind cuvântul cheie **const**. Așa cum le spune și numele variabilele constante sunt cele care odată inițializate cu o valoare **nu** mai pot fi modificate. | + | La fel ca în C, în C++ putem declara variabile constante folosind cuvântul cheie **const**. Așa cum le spune și numele variabilele constante sunt acea categorie de variabile care odată ce au fost inițializate cu o valoare **nu** mai pot fi modificate ulterior. |
<note warning>O **variabilă constantă** se ințializează pe linia unde a fost **declarată** altfel va genera o eroare de compilare.</note> | <note warning>O **variabilă constantă** se ințializează pe linia unde a fost **declarată** altfel va genera o eroare de compilare.</note> | ||
Line 773: | Line 764: | ||
int main() | int main() | ||
{ | { | ||
- | const float pi = 3.14f; // variabila constanta corect declarata | + | const float pi = 3.14f; // variabila constanta corect declarata |
- | const double k; // eroare de compilare variabila constanta este neinitializata | + | const double k; // eroare de compilare variabila constanta este declarata dar neinitializata |
- | int a = 2; | + | int a = 2; |
- | int b = 3; | + | int b = 3; |
- | const int suma = a + b; // corect | + | const int suma = a + b; // corect |
+ | suma = 20; // incorect, o variabila constanta nu mai poate fi modificata dupa ce a fost declarata si initializata | ||
- | suma = 20; // incorect, o variabila constanta nu mai poate fi modificata dupa declarare si initializare | + | return 0; |
- | + | ||
- | return 0; | + | |
} | } | ||
</code> | </code> | ||
Line 796: | Line 786: | ||
int a = 2; | int a = 2; | ||
int b = 3; | int b = 3; | ||
+ | |||
+ | // Situatia 1 | ||
// Pointer la un int, dar pointerul nu poate modifica valoarea la care pointeaza | // Pointer la un int, dar pointerul nu poate modifica valoarea la care pointeaza | ||
Line 804: | Line 796: | ||
// P2 este un pointer la un int constant (valoarea la care pointeaza nu poate fi modificata prin intermediul lui p2) | // P2 este un pointer la un int constant (valoarea la care pointeaza nu poate fi modificata prin intermediul lui p2) | ||
int const* p2 = &b; | int const* p2 = &b; | ||
+ | |||
+ | // Situatia 2 | ||
+ | |||
+ | // Pointer constant la un int | ||
+ | // P3 este un pointer constant la un int (pointerul in sine nu poate fi schimbat, dar valoarea la care pointeaza poate fi modificata) | ||
+ | int* const p3 = &a; | ||
+ | |||
+ | // Situatia 3 | ||
// Pointer constant la un int constant | // Pointer constant la un int constant | ||
- | // P3 este un pointer constant la un int constant si pointerul în sine nu poate fi schimbat (nu poate pointa catre alta adresa) | + | // P3 este un pointer constant la un int constant si pointerul in sine nu poate fi schimbat (nu poate pointa catre alta adresa) |
- | const int* const p3 = &a; | + | const int* const p4 = &a; |
// Efectiv aceeași declaratie ca p3, dar cu sintaxa diferita | // Efectiv aceeași declaratie ca p3, dar cu sintaxa diferita | ||
- | // P3 este un pointer constant la un int constant si pointerul în sine nu poate fi schimbat | + | // P4 este un pointer constant la un int constant si pointerul in sine nu poate fi schimbat |
- | int const* const p4 = &a; | + | int const* const p5 = &a; |
*p1 = 5; // eroare de compilare | *p1 = 5; // eroare de compilare | ||
- | p1 = &b; // corect | + | p1 = &b; // valid |
*p2 = *p1; // eroare de compilare | *p2 = *p1; // eroare de compilare | ||
p2 = p1; // valid | p2 = p1; // valid | ||
- | *p3 = 50; // eroare de compilare | + | *p3 = *p2; // valid |
- | p3 = p2; // eroare de compilare | + | p3 = &b; // eroare de compilare |
+ | |||
+ | *p4 = 50; // eroare de compilare | ||
+ | p4 = p2; // eroare de compilare | ||
- | p4 = p1; // eroare de compilare | + | p5 = p1; // eroare de compilare |
- | *p4 = 10; // eroare de compilare | + | *p5 = 10; // eroare de compilare |
return 0; | return 0; | ||
Line 837: | Line 840: | ||
**GIT** este un sistem de control al versiunilor distribuit, dezvoltat de **Linus Torvalds** în 2005 pentru a gestiona kernel-ul Linux. În prezent, este cel mai folosit sistem de versionare, iar împreună cu platforma **GitHub** oferă un cadru complet pentru dezvoltare colaborativă, versionare și backup al proiectelor software. | **GIT** este un sistem de control al versiunilor distribuit, dezvoltat de **Linus Torvalds** în 2005 pentru a gestiona kernel-ul Linux. În prezent, este cel mai folosit sistem de versionare, iar împreună cu platforma **GitHub** oferă un cadru complet pentru dezvoltare colaborativă, versionare și backup al proiectelor software. | ||
- | === De ce să folosim Git și GitHub === | + | === De ce să folosim Git și GitHub? === |
* **Lucru colaborativ** – mai mulți programatori pot contribui la același proiect. | * **Lucru colaborativ** – mai mulți programatori pot contribui la același proiect. | ||
Line 939: | Line 942: | ||
- Să instalăm Git pe mașinile noastre | - Să instalăm Git pe mașinile noastre | ||
- Să avem sau să ne facem un cont pe platforma **GitHub** | - Să avem sau să ne facem un cont pe platforma **GitHub** | ||
- | - La **prima** utilizare după ce am instalat Git-ul trebuie să rulăm comenzile **git config %%--%%global user_name** și **git config %%--%%global user_email** | + | - La **prima** utilizare după ce am instalat Git-ul trebuie să rulăm comenzile **git config %%--%%global user.name** și **git config %%--%%global user.email** |
- Să ne setăm o cheie **ssh** conform instrucțiunilor de [[https://www.youtube.com/watch?v=2kuG9ElVMhM|aici]]. | - Să ne setăm o cheie **ssh** conform instrucțiunilor de [[https://www.youtube.com/watch?v=2kuG9ElVMhM|aici]]. | ||
Line 945: | Line 948: | ||
<note tip> | <note tip> | ||
- | * Pentru descărcare git accesați site-ul următor: [[https://git-scm.com/downloads|Download git]] | + | * Pentru a descărca git-ul accesați site-ul următor: [[https://git-scm.com/downloads|Download Git]] |
- | * Pentru instalare git urmăriți acest tutorial: [[https://www.youtube.com/watch?v=iYkLrXobBbA|Tutorial instalare git]] | + | * Pentru instalare git urmăriți acest tutorial: [[https://www.youtube.com/watch?v=iYkLrXobBbA|Tutorial instalare Git]] |
* Pentru a vă crea un cont pe GitHub puteți urmări indicațiile de [[https://youtu.be/Gn3w1UvTx0A|aici]] | * Pentru a vă crea un cont pe GitHub puteți urmări indicațiile de [[https://youtu.be/Gn3w1UvTx0A|aici]] | ||
</note> | </note> |