Credits: https://ocw.cs.pub.ro/courses/smd/laboratoare/00
Obiective:
La Structuri de Date veți folosi Github Classroom pentru a primi feedback pe laboratoare. Înainte de a-l folosi, aveți nevoie de câțiva pași de configurare, pe care îi detaliem mai jos:
1. In primul rând, dacă nu aveți deja de la USO, va trebui să vă faceți un cont pe https://github.com. Puteți alege orice ID, dar numele trebuie să fie cel real. Altfel, nu vom ști cui să-i dam feedback pentru laboratoare.
2. Instalați utilitarul git
astfel:
sudo apt-get install git
3. Asistentul și padawanul vă vor da un link de forma https://classroom.github.com/a/<some-random-chars>. Accesați-l și dați click pe Accept this assignment
.
4. Dați refresh paginii după 1-2 minute. Pagina vă va afișa un link de forma https://github.com/sd-pub/31Xca-<your-github-id>.
5. Intrați pe acest link. Vă va duce la repository-ul vostru privat, unde veți încărca laboratoarele și unde asistenții și padawanii vă vor da feedback. Aici vă puteți încărca și temele. Pentru acestea, evident, nu le veți cere feedback asistenților și padawanilor.
Repository-ul vostru este creat pe https://github.com/. Pentru a-i modifica fișierele, e nevoie să-l clonați (“descărcați”) local astfel:
1. Mai întâi, configurati-vă username-ul (cel al contului pe care l-ați creat anterior) și emailul:
student@sd $ git config --global user.name "your_github_username" student@sd $ git config --global user.email "your_github_email"
2. Apoi, generati o pereche de chei (publică și privată) rulând comanda ssh-keygen
. Apăsați Enter
de 3 ori. Cheile au fost generate în directorul ~/.ssh/id_rsa
(cheia privata) și ~/.ssh/id_rsa.pub
(cheia publica).
student@sd $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/student/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/teo/.ssh/id_rsa Your public key has been saved in /home/teo/.ssh/id_rsa.pub The key fingerprint is: SHA256:SXnzjMdjYf2Q19y0Ca4VNQyE59NBYDsVD2/mbGhPFrQ student@sd The key's randomart image is: +---[RSA 3072]----+ | oBBBo| | . .oo*OO| | o o ===E@| | . o Bo+.@.| | S ..B + B| | o o = | | .| | | | | +----[SHA256]-----+
3. Copiați cheia publică (NU pe cea privată) pe Github, urmărind pașii de aici, începând cu pasul 2. Accesați cheia publică folosind comanda cat
:
student@sd $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDixFxqcaF25cs+zz6r8SN1SHJF2Ns2VKtvFDo6AYhCrbLV7Jt/Q10Wnv4hI+Ir4UHyr441Zh/ok/Kikk/22w/6o0sxqYsWlO7SJcyCo1hzGPknZEOlyk8R4LyAr5N8mMJ3ISW0C4H1OqlNe4a5apcrUgMgu5vC2R0gJBCTHV5W35HPwE2YlGUu2QllZUZtHxtEGhxpCvd2bA8pIm31sZ/30HnP8ojfmjozFSdseaR93/lnNn/5n9IYL1BM4hxdLg4Wg++vo1NlcMrxD2QUQWTVgPOg1wDGEoA6XBM5DHcYPFMimfylao7xrZH6LGSDuIY7k+a+vuJdeRoQNm4x1jkmQPC5yC7vi+4NpLRoMSyxZxYtoN11Nkzv2lAYUL3JcI9qwFsZuNY6nnxyVEYuyi5BxV7pRJShG3J8bs8p6um9vsgiholIq3AcLQwRA/dGb5dEHRDOjU7frYXrG4cMq1YW8ajr3CN4GFGLnyXvNxgFYWpKO9izsKPPFAOr9LinS+8= student@sd
4. Clonați local repository-ul pe care l-ați creat anterior și intrați în directorul nou creat. Linkul către repository îl puteți obține apăsând pe butonul Code
de pe pagina repository-ului vostru.
student@sd $ git clone git@github.com:sd-pub/<31Xca-your-github-id>.git student@sd $ cd <31Xca-your-github-id>
Acum să ne aducem aminte de la USO cum să creăm commituri și cum să le adăugăm într-un pull request.
1. Creați un branch separat astfel:
student@sd $ git checkout master student@sd $ git pull student@sd $ git checkout -b lab<x>
master
inainte să creați un branch nou! Pentru aceasta, rulați git checkout master
și git pull
înainte să creați un nou branch.
2. Rezolvați laboratorul.
3. Adăugați fișierele pe care le-ați editat astfel:
student@sd $ git add <path/to/files>
4. Creați un commit ce conține modificările adăugate anterior. Scrieți un mesaj de commit sugestiv și scurt, conform acestui ghid. Un mesaj de commit bun ar putea fi: lab<x>: Add solution
:
student@sd $ git commit -m "lab<x>: Add solution"
5. Dați push commitului pe care tocmai l-ați creat, pentru a-l publica în repository-ul remote (cel de pe https://github.com). Folosiți parametrul -u origin lab<x>
pentru a crea un nou branch în repository-ul remote, cu numele lab<x>
:
student@sd $ git push -u origin lab<x>
6. Intrați pe pagina repository-ului vostru. Veți fi notificați că au fost făcute noi modificări pe branchul lab<x>
și că puteți crea un nou pull request. Faceți acest lucru apăsând pe butonul Compare & pull request
.
7. Dați un titlu sugestiv pull requestului și adaugați atât asistentul cât și padawanul ca revieweri. Doar unul dintre ei va apărea, dar amândoi vor fi notificați. Apoi apasați pe butonul Create pull request
.
8. Felicitări! Ați terminat laboratorul. Așteptați feedbackul asistentului sau al padawanului și implementați sugestiile acestora.