This is an old revision of the document!


Git guide

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.

Link-uri către repo-uri:

  • 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 aici.

  • În cazul instalării pe Windows
    • 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

De asemenea, asigurați-vă că aveți un cont de GitHub creat.

Setup repo local (fork)

Procedura recomandată pentru a putea lucra într-un singur repo este următoarea:

  • Realizați un fork al repo-ului original / referință
  • 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 continuare vă prezentăm procedura pentru a face setup-ul necesar.

1. Fork repo original

De pe web page-ul repo-ului original (de pe GitHub), creați un Fork (aveți un buton special pentru acesta). Fork-ul va crea de fapt o copie a repo-ului original pe contul vostru.

2. Clone fork

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ă.

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)

// Repo AR
git clone https://github.com/<username>/<nume_repo_ar_WIP>

// Repo VR
git clone https://github.com/<username>/<nume_repo_vr_WIP>
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):

git remote add upstream <link_repo_original_ar_sau_vr>
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:

Pentru a face staging - anume, pentru a specifica fișierele pe care dorim să le supunem unui commit:

git add .

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

Așadar, o comanda foarte utilă pentru a vedea starea curentă este:

git status

În continuare, după staging, trebuie să faceți commit, care aplică modificările local:

git commit -m "Message here"

În final, pentru a actualiza schimbările pe remote, trebuie să faceți push:

git push
5. Cum actualizez fork-ul pe baza repo-ului original?

Înainte de a rula acești pași asigurați-vă că nu aveți fișiere untracked pe repo-ul forked! Daca rulați comanda git status si aveți fișiere marcate cu roșu (untracked), faceți poți pașii de la 4, dacă aveți fișiere marcate cu verde (staged), faceți pașii de la 4 fără staging (commit, push)

Pentru a vizualiza eventuale schimbări în repo-ul original, rulați comanda:

git fetch upstream

Pentru a aplica modificările, rulați:

Fie comanda

git merge upstream/master

Fie comanda

git pull upstream master

În esență, pull face fetch și merge într-o singură acțiune, așadar cea mai rapida variantă este să rulați direct:

git pull upstream master

După acest pas se va deschide în bash un fișier în modul de editare al merge-ului.

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:

git push

În final, puteți vedea istoricul de commit-uri folosind comanda:

git log --oneline

În mod alternativ, există tool-uri vizuale ce vă ajută să studiați aceast istoric, noi recomandăm:

  • GitKraken
  • JetBrains Rider

Merge conflicts 🥲

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.

Backup

Ca pentru orice informație digitală, chiar dacă totul merge smooth, vă recomandăm totuși să faceți backup-uri!

irva/resurse/gitguide.1728298173.txt.gz · Last modified: 2024/10/07 13:49 by andrei.lapusteanu
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