This shows you the differences between two versions of the page.
uso:laboratoare:ac:laborator-06:git-first-commits [2020/11/10 09:08] 127.0.0.1 external edit |
uso:laboratoare:ac:laborator-06:git-first-commits [2021/11/10 22:02] (current) andrei.tivga |
||
---|---|---|---|
Line 13: | Line 13: | ||
* să vedem cine este autorul anumitor modificări | * să vedem cine este autorul anumitor modificări | ||
* să creăm o ramură de dezvoltare separată pornind de la un commit anterior, pe care să încercăm o funcționalitate nouă, fără a afecta restul proiectului | * să creăm o ramură de dezvoltare separată pornind de la un commit anterior, pe care să încercăm o funcționalitate nouă, fără a afecta restul proiectului | ||
+ | |||
+ | Putem să ne gândim la un commit ca la un checkpoint. Când lucrăm pe repository-ul local, orice modificări aducem sunt doar la noi pe calculator. Asta înseamnă că un coleg cu care lucrezi la proiect nu va vedea ce ai lucrat tu. Astfel că, atunci când lucrăm la un proiect, periodic sau când terminăm un anumit task / o funcție importantă ce vrem să fim singuri că s-a salvat, vom face un commit. Mai exact, salvăm tot ce am lucrat într-un checkpoint cu nume sugestiv (un mesaj de commit) la care vom putea reveni mai târziu în cazul în care stricăm ceva în program. | ||
Git se ocupă de păstrarea și gestiunea istoricului repository-ului nostru prin păstrarea listei de commituri făcute. Adică Git păstrează un istoric de versiuni al proiectului. | Git se ocupă de păstrarea și gestiunea istoricului repository-ului nostru prin păstrarea listei de commituri făcute. Adică Git păstrează un istoric de versiuni al proiectului. | ||
Line 23: | Line 25: | ||
Fără a actualiza și repository-ul remote, ceilalți colegi nu vor putea vedea schimbările făcute de noi. Vrem, așadar, ca modificările făcute local să se găsească și remote. Adică să publicăm commiturile din repository-ul local în repository-ul remote. Realizăm publicarea prin operația **push**. | Fără a actualiza și repository-ul remote, ceilalți colegi nu vor putea vedea schimbările făcute de noi. Vrem, așadar, ca modificările făcute local să se găsească și remote. Adică să publicăm commiturile din repository-ul local în repository-ul remote. Realizăm publicarea prin operația **push**. | ||
- | Vom vedea în următoarele secțiuni care sunt pașii pentru a crea un commit și pentru a-l publica. | ||
</note> | </note> | ||
+ | |||
+ | Vom vedea în următoarele secțiuni care sunt pașii pentru a crea un commit și pentru a-l publica. | ||
+ | |||
În următoarele secțiuni vom lucra în repository-ul ''%%array-sorting-algorithms%%'' creat în secțiunea ''%%Introducere în Git și GitHub%%''. Vom crea, pas cu pas, un proiect software scris în limbajul de programare C, care conține mai mulți algoritmi de sortare a unui vector de elemente întregi. | În următoarele secțiuni vom lucra în repository-ul ''%%array-sorting-algorithms%%'' creat în secțiunea ''%%Introducere în Git și GitHub%%''. Vom crea, pas cu pas, un proiect software scris în limbajul de programare C, care conține mai mulți algoritmi de sortare a unui vector de elemente întregi. | ||
Line 31: | Line 35: | ||
===== Adăugarea unui fișier README ===== | ===== Adăugarea unui fișier README ===== | ||
- | |||
- | Reamintire | ||
O bună practică, prezentă în majoritatea proiectelor software, este să adăugăm un fișier ''%%README%%'' în care se află informații despre un proiect. Spre exemplu, în ''%%README%%'' se află informații despre ce funcționalități are proiectul nostru, cum se compilează un proiect, cum se rulează, pe ce tip de platforme poate fi rulat etc. | O bună practică, prezentă în majoritatea proiectelor software, este să adăugăm un fișier ''%%README%%'' în care se află informații despre un proiect. Spre exemplu, în ''%%README%%'' se află informații despre ce funcționalități are proiectul nostru, cum se compilează un proiect, cum se rulează, pe ce tip de platforme poate fi rulat etc. | ||
Line 44: | Line 46: | ||
./ ../ .git/ README.md | ./ ../ .git/ README.md | ||
</code> | </code> | ||
- | <note> | ||
+ | |||
+ | <note> | ||
Caracterul ''%%#%%'' din fața textului ''%%Sorting Algorithms for Beginners%%'' are rol de a formata textul sub formă de titlu. Nu intrăm în mai multe detalii aici pentru că nu face obiectul cărții. | Caracterul ''%%#%%'' din fața textului ''%%Sorting Algorithms for Beginners%%'' are rol de a formata textul sub formă de titlu. Nu intrăm în mai multe detalii aici pentru că nu face obiectul cărții. | ||
Line 82: | Line 85: | ||
README.md | README.md | ||
</code> | </code> | ||
- | Prima linie afișată ''%%On branch master%%'' se referă la branch-ul ''%%master%%'' local. Vom discuta în secțiunea ''%%Lucrul pe branch-uri%%'' despre branch-uri. | ||
A doua linie afișată ''%%No commits yet%%'' ne spune că nu am făcut până acum niciun commit, adică am pornit de la un repository gol. | A doua linie afișată ''%%No commits yet%%'' ne spune că nu am făcut până acum niciun commit, adică am pornit de la un repository gol. | ||
Line 229: | Line 231: | ||
=== Exerciții === | === Exerciții === | ||
- | - Modificați continutul fișierului ''%%README.md%%'' în ''%%# Sorting Algorithm for Integer Arrays%%''. | + | - Modificați titlul fișierului ''%%README.md%%'' în ''%%# Sorting Algorithm for Integer Arrays%%''. |
- Creați un commit care să conțină modificările la fișierul ''%%README.md%%''. Folosiți următorul mesaj de commit: ''%%Update README title%%''. | - Creați un commit care să conțină modificările la fișierul ''%%README.md%%''. Folosiți următorul mesaj de commit: ''%%Update README title%%''. | ||
Line 274: | Line 276: | ||
Add README file | Add README file | ||
</code> | </code> | ||
+ | |||
<note> | <note> | ||
- | |||
Navigați prin outputul comenzii ''%%git log%%'' prin intermediul săgeților sus/jos. Apăsați tasta **q** când ați terminat de inspectat. | Navigați prin outputul comenzii ''%%git log%%'' prin intermediul săgeților sus/jos. Apăsați tasta **q** când ați terminat de inspectat. | ||
- | |||
</note> | </note> | ||
+ | <note> | ||
În cazul autorului acestui capitol, numele, prenumele și emailul sunt ''%%Liza Babu <lizababu@example.com>%%'', așa cum apare în exemplul de mai sus: ''%%Author: Liza Babu <lizababu@example.com>%%''. | În cazul autorului acestui capitol, numele, prenumele și emailul sunt ''%%Liza Babu <lizababu@example.com>%%'', așa cum apare în exemplul de mai sus: ''%%Author: Liza Babu <lizababu@example.com>%%''. | ||
+ | </note> | ||
Fiecare commit este identificat unic printr-un cod, numit **cod hash**((Codul hash este calculat ca o sumă de control [[https://en.wikipedia.org/wiki/SHA-1|SHA-1]] a conținutului commitului. | Fiecare commit este identificat unic printr-un cod, numit **cod hash**((Codul hash este calculat ca o sumă de control [[https://en.wikipedia.org/wiki/SHA-1|SHA-1]] a conținutului commitului. | ||
Line 306: | Line 309: | ||
* [new branch] master -> master | * [new branch] master -> master | ||
</code> | </code> | ||
- | În felul acesta commiturile locale au fost publicate ("împinse", //push//) din repository-ul local în repository-ul remote identificat de ''%%origin%%''. Commiturile locale se aflau pe branch-ul **master** din repository-ul **local** și au fost publicate tot în branch-ul **master** al repository-ului **origin**. Vorbim despre **branch-uri** în secțiunea ''%%Lucrul cu branch-uri%%''. | + | În felul acesta commiturile locale au fost publicate ("împinse", //push//) din repository-ul local în repository-ul remote identificat de ''%%origin%%''. Commiturile locale se aflau pe branch-ul **master** din repository-ul **local** și au fost publicate tot în branch-ul **master** al repository-ului **origin**. |
+ | |||
+ | <note warning> | ||
+ | Folosiți pentru autentificare username-ul vostru și token-ul generat la secțiunea ''%%Crearea unui token de autentificare (dacă nu aveți deja)%%''. | ||
+ | </note> | ||
Ca să verificăm publicarea commiturilor, folosim interfața GitHub: | Ca să verificăm publicarea commiturilor, folosim interfața GitHub: | ||
Line 322: | Line 329: | ||
**Note de subsol** | **Note de subsol** | ||
+ | |||