Acesta este repo-ul grupei 2B5. :fireworks: :rocket: :stars:
Descriere proiect
inca nu exista o descriere oficiala a proiectuui
:thought_balloon: Saptamana 7 - descriere laborator
... deadline: 06.04.2016, ora 10 (S8)
:thought_balloon: Saptamana 9 - descriere laborator
... deadline: 19.04.2016, ora 10 (S10)
Fiecare din cele 3 echipe isi va face un fork al acestui repo din interfata Github.
Numele de pull-requesturi sau commituri trebuie sa respecte niste norme ! (verificati commituri/pull requests anterioare pe repo-ul principal)
Instalati urmatoarele:
--sefii de echipa - faceti asta o singura data
git remote -v
//verifica ce remote sunt setate, by default fiind origin, cel pentru repo-ul echipei voastre (fork-ul)
Q1: o data ce seful de echipa a setat un remote si a facut push, teoretic, daca voi ati clonat local repo-ul dupa acel push, ar trebui sa aveti remote-ul de upstream (git remote -v)
git remote add upstream https://github.com/2B5/ip-2B5
//adauga un nou remote pentru upstream, astfel incat voi sa puteti rula urmatoarele comenzi
--sefii de echipa - de fiecare data cand vreti sa faceti un pull request catre repo-ul principal (cu alte cuvinte, vreti sa faceti "push" in repo-ul principal)
git fetch
//preia schimbarile din upstreamgit rebase upstream/master
//adauga schimbarile din upstream si pozitioneaza modificarile actuale peste cele din upstream; un exemplu:
Before rebase
> ... o ---- o ---- A ---- B origin/master (upstream)
> \
> C ---- M master (origin)
After rebase
> ... o ---- o ---- A ---- B origin/master (upstream)
> \
> C ---- M master (origin)
git push origin master
//daca nu este nimic modificat in repo-ul vostru fata de upstream / ->
Edge cases here !: daca aveti commits care nu au fost pushed ?, daca aveti modificari care nu au fost add / sau nu au fost added, dar nu fac parte dintr-un commit ? ...
O data ce ati terminat ce ati avut de facut, faceti un pull request catre repo-ul principal (nu e nevoie sa modificati nimic la cerere, decat un titlu si o descriere conforme cu normele stabilite - verificati pull requesturi anterioare sau intrebati pe Dan) ~~ normele vor fi incluse in curand si aici
--toti !
git rebase origin/master
//pentru a va adauga modificarile dupa cele ale echipei voastre (presupun ca aici s-ar putea sa apara probleme la partea de implementare, la un moment dat)git status
//verifica daca sunteti repo-ul local este in urma/fata repo-ului de pe github (al vostru), verifica daca au fost schimbate fisieregit add .
//daca sunt fisiere modificate/untracked, schimbarile vor fi salvate recursiv pe repo (orice (sub)folder sau fisier modificat sau adaugat)git commit -m "<mesaj>"
//orice fisier adaugat prin add va fi inclus in acest commit; git push origin master
//commitul va fi incarcat pe remote-ul de origin (repo-ul vostru) pe branchul master (grija la branchuri, daca tineti neaparat !)-- in caz in care aveti modificari la care inca nu s-a dat commit, si nu se poate face rebase:
git stash
- salveaza schimbarile actuale fata de HEAD intr-o locatie separatagit rebase origin/master
//descris mai inaintegit stash apply
- restaureaza git log
\verifica commiturile anterioare (commit history, basically) - navigati cu tastele directionale, apasati 'q' si apoi dati enter pentru iesiregit diff
\verifica modificarile fata de ultimul commit - acelasi mod de lucru ...git reset
\in forma asta, git reset face un 'undo' la git add, daca nu ati facut commit-ul inca, si ati mai adaugat ceva dupa git addgit rebase HEAD~<nr>
\intoarce istoricul din repo cu nr pasi inapoi | nu folositi aceasta comanda decat daca ati folosit in prealabil comanda pe un repo de test ! (pentru ca git rebase --continue
si git rebase --abort
)