Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:laborator-08:git-first-commits [2022/11/23 11:13]
maria.mihailescu [Crearea primului commit]
uso:laboratoare:laborator-08:git-first-commits [2023/11/16 22:52] (current)
mihai.pacuraru [Crearea primului commit] fix internal links
Line 15: Line 15:
  
 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.
- 
-Note 
  
  
Line 26: Line 24:
  
  
-În următoarele secțiuni vom lucra în repository-ul ''​%%array-sorting-algorithms%%''​ creat în secțiunea ''​%%app_dev_git_intro%%''​. 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 ''​[[:​uso:​laboratoare:​laborator-08#​introducere_in_git_si_github|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.
  
 Punctual, în această secțiune, vom crea fișierul ''​%%README%%''​ al proiectului și scheletul de cod pentru algoritmii de sortare **Bubble Sort**, **Merge Sort** și **Radix Sort**. Vom crea commituri în repository-ul local pentru fiecare schimbare, după care vom publica commiturile astfel încât schimbările să fie vizibile și pe GitHub, în repository-ul remote. Punctual, în această secțiune, vom crea fișierul ''​%%README%%''​ al proiectului și scheletul de cod pentru algoritmii de sortare **Bubble Sort**, **Merge Sort** și **Radix Sort**. Vom crea commituri în repository-ul local pentru fiecare schimbare, după care vom publica commiturile astfel încât schimbările să fie vizibile și pe GitHub, în repository-ul remote.
Line 44: Line 42:
 ./         ​../ ​       .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.
 +</​note>​
  
 Folosim extensia ''​%%.md%%''​ care semnalează un fișier de tip [[https://​www.markdownguide.org|Markdown]]. Facem acest lucru deoarece pe GitHub fișierele ''​%%README%%''​ sunt afișate în format Markdown. Acest format este simplu de înțeles, însă nu face obiectul acestei cărți, deci nu vom insista pe înțelegerea lui. Folosim extensia ''​%%.md%%''​ care semnalează un fișier de tip [[https://​www.markdownguide.org|Markdown]]. Facem acest lucru deoarece pe GitHub fișierele ''​%%README%%''​ sunt afișate în format Markdown. Acest format este simplu de înțeles, însă nu face obiectul acestei cărți, deci nu vom insista pe înțelegerea lui.
Line 58: Line 56:
 Pașii creării unui commit sunt următorii: Pașii creării unui commit sunt următorii:
  
-  - Verificăm repository-ului. Cu alte cuvinte, verificăm ce modificări au fost făcute în repository de la ultimul commit.+  - Verificăm repository-ul. Cu alte cuvinte, verificăm ce modificări au fost făcute în repository de la ultimul commit.
   - Adăugăm fișierele pe care vrem să le împachetăm într-un commit în **staging area**, adică în lista de fișiere pe care Git le organizează.   - Adăugăm fișierele pe care vrem să le împachetăm într-un commit în **staging area**, adică în lista de fișiere pe care Git le organizează.
   - Alegem un mesaj de commit. Creăm commitul.   - Alegem un mesaj de commit. Creăm commitul.
Line 82: Line 80:
     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 ''​%%app_dev_branches%%''​ despre branch-uri.+Prima linie afișată ''​%%On branch master%%''​ se referă la branch-ul ''​%%master%%''​ local. Vom discuta în secțiunea ''​[[:​uso:​laboratoare:​laborator-08#​lucrul_pe_branch-uri | 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 136: Line 134:
 {{:​uso:​github-create-new-commit.gif?​600|}} {{:​uso:​github-create-new-commit.gif?​600|}}
  
-Mai sus am creat un commit cu fișierul ''​%%bubble-sort.c%%''​ urmând pași similari cu cei din secțiunea ''​%%app_dev_local_commit%%'':​ 
- 
-<code bash> 
-student@uso:​~/​array-sorting-algorithms$ git status 
-(...) 
-student@uso:​~/​array-sorting-algorithms$ git add bubble-sort.c 
-student@uso:​~/​array-sorting-algorithms$ git status 
-(...) 
-student@uso:​~/​array-sorting-algorithms$ git commit -m "Add Bubble Sort skeleton"​ 
-(...) 
-</​code>​ 
 Conținutul fișierului ''​%%bubble-sort.c%%''​ este: Conținutul fișierului ''​%%bubble-sort.c%%''​ este:
  
Line 161: Line 148:
     return 0;     return 0;
 } }
 +</​code>​
 +
 +
 +Mai sus am creat un commit cu fișierul ''​%%bubble-sort.c%%''​ urmând pași similari cu cei din secțiunea ''​[[:​uso:​laboratoare:​laborator-08#​crearea_primului_commit| Crearea primului commit]]'':​
 +
 +<code bash>
 +student@uso:​~/​array-sorting-algorithms$ git status
 +(...)
 +student@uso:​~/​array-sorting-algorithms$ git add bubble-sort.c
 +student@uso:​~/​array-sorting-algorithms$ git status
 +(...)
 +student@uso:​~/​array-sorting-algorithms$ git commit -m "Add Bubble Sort skeleton"​
 +(...)
 </​code>​ </​code>​
 === Exerciții === === Exerciții ===
Line 179: Line 179:
 </​code>​ </​code>​
   - Creați un commit care să conțină fișierul ''​%%radix-sort.c%%''​. Folosiți următorul mesaj de commit: ''​%%Add Radix Sort algorithm skeleton%%''​.   - Creați un commit care să conțină fișierul ''​%%radix-sort.c%%''​. Folosiți următorul mesaj de commit: ''​%%Add Radix Sort algorithm skeleton%%''​.
-  - Dați comanda de verificare ''​%%git log%%''​. Detaliem outputul comenzii ''​%%git log%%''​ în subsecțiunea ''​%%app_dev_check_history%%''​.+  - Dați comanda de verificare ''​%%git log%%''​. Detaliem outputul comenzii ''​%%git log%%''​ în subsecțiunea ''​[[:​uso:​laboratoare:​laborator-08#​verificarea_istoricului_de_commituri | Verificarea istoricului de commituri]]''​.
   - Creați un nou fișier numit ''​%%merge-sort.c%%''​ cu următorul conținut:   - Creați un nou fișier numit ''​%%merge-sort.c%%''​ cu următorul conținut:
 <code c> <code c>
Line 221: Line 221:
  
 student@uso:​~/​array-sorting-algorithms$ git commit -m "​Update README with project explanation"​ student@uso:​~/​array-sorting-algorithms$ git commit -m "​Update README with project explanation"​
-t explanation"​ 
 [master 247b87f] Update README with project explanation [master 247b87f] Update README with project explanation
 1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
 </​code>​ </​code>​
-Spre deosebire de secțiunea ''​%%app_dev_create_new_commit%%'',​ unde comanda ''​%%git status%%''​ arăta că fișierul modificat (în acel caz, ''​%%bubble-sort.c%%''​) este nou (//new file//), acum comanda ''​%%git status%%''​ arată că fișierul modificat (în acest caz, ''​%%README.md%%''​) a fost modificat (//​modified//​). Deși apare această diferență în outputul comenzii ''​%%git status%%'',​ pașii pentru crearea unui commit care conține un fișier nou sau unul deja existent (dar modificat) sunt aceiași.+Spre deosebire de secțiunea ''​[[:​uso:​laboratoare:​laborator-08#​crearea_unui_nou_commit | Crearea unui nou commit]]'',​ unde comanda ''​%%git status%%''​ arăta că fișierul modificat (în acel caz, ''​%%bubble-sort.c%%''​) este nou (//new file//), acum comanda ''​%%git status%%''​ arată că fișierul modificat (în acest caz, ''​%%README.md%%''​) a fost modificat (//​modified//​). Deși apare această diferență în outputul comenzii ''​%%git status%%'',​ pașii pentru crearea unui commit care conține un fișier nou sau unul deja existent (dar modificat) sunt aceiași.
  
 === Exerciții === === Exerciții ===
Line 274: Line 273:
     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 312: Line 312:
 * [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 ''​%%app_dev_branches%%''​.+Î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 ''​[[:​uso:​laboratoare:​laborator-08#​lucrul_pe_branch-uri | Lucrul pe branch-uri]]''​.
  
 Ca să verificăm publicarea commiturilor,​ folosim interfața GitHub: Ca să verificăm publicarea commiturilor,​ folosim interfața GitHub:
  
-{{./​img/​GitHub-publish-commits.png}}+{{:​uso:​laboratoare:​laborator-04:​github-publish-commits.png?700}}
  
  
uso/laboratoare/laborator-08/git-first-commits.1669194819.txt.gz · Last modified: 2022/11/23 11:13 by maria.mihailescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0