This shows you the differences between two versions of the page.
irva:resurse:gitguide [2024/10/07 12:56] andrei.lapusteanu Updated git guide |
irva:resurse:gitguide [2024/10/21 23:16] (current) andrei.lapusteanu Minor text edits |
||
---|---|---|---|
Line 3: | Line 3: | ||
Pentru a vă ușura munca în cadrul laboratoarelor de IRVA, vă recomandăm să lucrați cu Git & GitHub. | Pentru a vă ușura munca în cadrul laboratoarelor de IRVA, vă recomandăm să lucrați cu Git & GitHub. | ||
- | Laboratoarele de AR și VR for avea fiecare un repository pe GitHub - întrucât este posibil ca repo-urile să mai primească actualizări pe parcursul semestrului, ar fi ideal să urmați pașii descriși în acest ghid pentru a nu fi nevoie să va clonați / descărcați de multiple ori proiectul. | + | Laboratoarele de AR și VR for avea un repository pe GitHub - întrucât este posibil ca repo-urile să mai primească actualizări pe parcursul semestrului, ar fi ideal să urmați pașii descriși în acest ghid pentru a nu fi nevoie să vă clonați / descărcați de multiple ori proiectul. |
- | Link-uri către repo-uri: | + | Link către [[https://github.com/UPB-Graphics/IRVA|Git repo]] |
- | * Repo AR: <LINK> (link_repo_original_ar) | + | |
- | * Repo VR: <LINK> (link_repo_original_vr) | + | |
- | ===== Instalare Git ===== | + | Înainte de toate, asigurați-vă că aveți Git instalat, acesta se poate descărca de [[https://git-scm.com|aici]]. |
- | + | * În cazul instalării pe Windows | |
- | + | ||
- | Înainte de toate, asigurați-vă că aveți Git instalat, acesta se poate descărca de aici <LINK>. | + | |
- | * În cazul instării pe Windows | + | |
* Asigurați-vă ca aveți bifat "Add Git to PATH" | * Asigurați-vă ca aveți bifat "Add Git to PATH" | ||
* Setările implicite ale install wizard-ului ar trebui să fie OK în rest | * Setările implicite ale install wizard-ului ar trebui să fie OK în rest | ||
De asemenea, asigurați-vă că aveți un cont de GitHub creat. | De asemenea, asigurați-vă că aveți un cont de GitHub creat. | ||
+ | |||
+ | Nu uitați să vă instalați și [[https://git-lfs.com|Git LFS]]. | ||
===== Setup repo local (fork) ===== | ===== Setup repo local (fork) ===== | ||
- | Procedura recomandată pentru a putea lucra într-un singur repo este următoarea: | + | Procedura recomandată pentru a putea lucra într-un singur repo clonat pe sistemul vostru este următoarea: |
* Realizați un **fork** al repo-ului original / referință | * Realizați un **fork** al repo-ului original / referință | ||
- | * Vă clonați fork-ul, pe care puteți apoi lucra pentru a rezolva laboratoarele | + | * Vă **clonați** fork-ul, pe care puteți apoi lucra pentru a rezolva laboratoarele |
* În cazul unor actualizări pe repo-ul original (de ex. actualizăm noi repo-ul pentru un laborator nou), voi vă trageți (**pull**) aceste modificări în fork și în același timp mențineți modificările voastre | * În cazul unor actualizări pe repo-ul original (de ex. actualizăm noi repo-ul pentru un laborator nou), voi vă trageți (**pull**) aceste modificări în fork și în același timp mențineți modificările voastre | ||
Line 36: | Line 33: | ||
== 2. Clone fork == | == 2. Clone fork == | ||
- | Repo-ul forked, cel de pe contul vostru, va trebui să-l clonați acum pe mașina voastră locală. | + | Repo-ul forked, cel de pe contul vostru, va trebui să-l clonați pe mașina voastră locală. |
Navigați la o locație preferată în sistemul vostru de fișiere, din Windows puteți face acolo click-dreapta, ''Properties > Git Bash here'' pentru a deschida linia de comandă. | Navigați la o locație preferată în sistemul vostru de fișiere, din Windows puteți face acolo click-dreapta, ''Properties > Git Bash here'' pentru a deschida linia de comandă. | ||
De pe repo-ul forked copiați link-ul către repo (butonul verde ''Code''). | De pe repo-ul forked copiați link-ul către repo (butonul verde ''Code''). | ||
- | În Git Bash, rulați comanda (atenție, schimbați voi comanda după necesitate) | + | În Git Bash, rulați comanda: |
<code> | <code> | ||
+ | git clone https://github.com/UPB-Graphics/IRVA.git | ||
+ | </code> | ||
- | // Repo AR | + | <note tip> |
- | git clone https://github.com/<username>/<nume_repo_ar_WIP> | + | * Puteți să clonați via SSH ''git@github.com:UPB-Graphics/IRVA.git'' |
- | + | * [[https://medium.com/@kyledeguzmanx/quick-step-by-step-guide-to-generating-an-ssh-key-in-github-d3c6f7e185bb|Setup Git SSH]] | |
- | // Repo VR | + | </note> |
- | git clone https://github.com/<username>/<nume_repo_vr_WIP> | + | |
- | + | ||
- | </code> | + | |
== 3. Adăugare upstream către repo-ul original == | == 3. Adăugare upstream către repo-ul original == | ||
- | Acest pas este necesar pentru a putea primi actualizări în fork-ul vostru. Pentru a urmări repo-ul original, rulați urmatoarea comanda Git (atenție, schimbați voi comanda după necesitate): | + | Acest pas este necesar pentru a putea primi actualizări în fork-ul vostru. Pentru a urmări repo-ul original, rulați urmatoarea comanda Git: |
<code> | <code> | ||
- | git remote add upstream <link_repo_original_ar_sau_vr> | + | git remote add upstream https://github.com/UPB-Graphics/IRVA.git |
</code> | </code> | ||
Line 65: | Line 61: | ||
== 4. Cum pot lucra pe fork și să aplic schimbările mele (local)? == | == 4. Cum pot lucra pe fork și să aplic schimbările mele (local)? == | ||
- | Puteți lucra în mod obișnui pe repo-ul forked (local). În cazul în care doriți să-l actualizați, de exemplu în urma rezolvării unui laborator, puteți rula: | + | Puteți lucra în mod obișnuit pe repo-ul forked (local). În cazul în care doriți să-l actualizați, de exemplu în urma rezolvării unui laborator, faceți referire la următorii pași. |
- | Pentru a face staging - adică specificăm fișierele pe care dorim să le supunem unui commit: | + | Pentru a face staging - anume, pentru a specifica fișierele pe care dorim să le supunem unui commit: |
<code> | <code> | ||
Line 73: | Line 69: | ||
</code> | </code> | ||
- | <note important>''git add .'' pune toate schimbarile în //staging area//. Ideal, vă recomandăm să verificați în prelabil ce fișiere vor fi incluse în //staging area//</note> | + | <note important>''git add .'' pune toate schimbarile în //staging area//. Ideal, vă recomandăm să verificați în prealabil ce fișiere vor fi incluse în //staging area//</note> |
- | Așadar, o comanda foarte utilă pentru a vedea starea curentă este | + | Așadar, o comanda foarte utilă pentru a vedea starea curentă este: |
<code> | <code> | ||
Line 107: | Line 103: | ||
Fie comanda | Fie comanda | ||
<code> | <code> | ||
- | git merge upstream/master | + | git merge upstream/main |
</code> | </code> | ||
Line 113: | Line 109: | ||
<code> | <code> | ||
- | git pull upstream master | + | git pull upstream main |
</code> | </code> | ||
Line 119: | Line 115: | ||
<code> | <code> | ||
- | git pull upstream master | + | git pull upstream main |
</code> | </code> | ||
Line 128: | Line 124: | ||
Pentru a ieși din acest mod rulați '':q''. | Pentru a ieși din acest mod rulați '':q''. | ||
- | Dacă acum rulați comanda ''git status'' ar trebui să primiți un mesaj care va informează că varianta voastra locală este în urmă. Pentru a aplica modificările, rulați: | + | Dacă acum rulați comanda ''git status'' ar trebui să primiți un mesaj care vă informează că varianta voastra locală este în urmă. Pentru a aplica modificările, rulați: |
<code> | <code> | ||
Line 143: | Line 139: | ||
* GitKraken | * GitKraken | ||
* JetBrains Rider | * JetBrains Rider | ||
+ | |||
+ | ===== Merge conflicts 🥲 ===== | ||
+ | |||
+ | <note>Este posbil ca dupa un update de pe repo-ul upstream să existe merge conflicts. Vom încerca pe cât posibil să nu modificăm fișiere deja existente. Necunoscând de pe acum natura acestor conflicte, nu vă putem da o singură soluție pentru ele, aici va trebui să discutați cu asistenul de laborator, sau cereți ajutor colegilor / urmăriți un ghid online.</note> | ||
+ | |||
+ | ===== Backup ===== | ||
+ | |||
+ | <note tip>Ca pentru orice informație digitală, chiar dacă totul merge smooth, vă recomandăm totuși **să faceți backup-uri**!</note> |