master - početna grana - NE MIJENJATI NIŠTA U NJOJ
lab1 - promjene samo u direktoriju lab1 kojeg dodati
lab2 - promjene samo u Chapter_02_Source_tree/04_Debugging/
samo one koje se tiču druge vježbe.
Mijenjaju se postojeće datoteke! Ne stvarati nove direktorije i u njima kopirati cijelu strukturu koda.
Naredba git diff master će tada pokazati promjene u kodu (nakon što su one dodane u granu lab2).
lab3 - grana koja uključuje promjene samo prema 3. zadatku.
NE uključuje promjene iz lab1 ni lab2
LABx (x je broj)
git diff.
Npr. usporedba među grane master i ostalih:
$ git checkout master $ git diff master..lab1 $ git diff master..lab2 ...Usporedba između
lab1 i lab2
$ git checkout lab1 $ git diff lab1..lab2U promjenama se vide problemi (što je u pojedinoj grani a nije trebalo biti).
Obzirom na moguće "probleme" pri radu popravaka preporuka je napraviti kopiju
cijela direktorija. Npr. ako je radni direktorij /home/user/osur/benu
napraviti kopiju: cd && cp -r osur/benu osur/benu-rezerva
U slučaju problema, iz kopije se uvijek može kopirati datoteka/direktorij koji "više nije" dohvatljiv (na jednostavan način) iz dijelom popravljena koda.
U KOPIJI NIŠTA NE BRISATI, NE KORISTITI NAREDBE git add, git commit I SL.
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git log
commit 1d33c53b94aec8bd5f1440f2edfa3d2f7dc97413 //identifikacijski broj ove promjene, koristi se u nastavku, različit u vašem kodu
Author: Leonardo Jelenkovic <leonardo.jelenkovic@fer.hr>
Date: Mon Feb 27 21:28:33 2017 +0100
Pocetni prazan repozitorij
Ovako bi trebalo biti, bez vaših promjena u grani master.Ako nije tako nego npr.:
$ git log
commit ffceb9d90fa4d8840ccc6e63f246f1a7f83ac2c6
Author: Leonardo Jelenkovic <leonardo.jelenkovic@fer.hr>
Date: Thu Mar 23 14:27:10 2017 +0100
lab1
commit 1d33c53b94aec8bd5f1440f2edfa3d2f7dc97413
Author: Leonardo Jelenkovic <leonardo.jelenkovic@fer.hr>
Date: Mon Feb 27 21:28:33 2017 +0100
Pocetni prazan repozitorij
onda treba vjerojatno popraviti. Pogledati da li ima promjena:
$ git diff 1d33c53b94aec8bd5f1440f2edfa3d2f7dc97413Ako nema, onda je repozitorij isti kao i početan (greška je u međuvremenu popravljena). Ako ima, onda to treba popraviti. Ima mnogo načina kako to napraviti.
Dva pristupa su opisana u nastavku.
1. Koristiti git revert naredbu (poništiti sve commitove osim početnog)
$ git revert ffceb9d90fa4d8840ccc6e63f246f1a7f83ac2c6 $ git pushAko ima više promjena navesti ih sve (njihove oznake - heksadekadske brojeve). Navedenu promjenu onda pohraniti u repozitorij (
git push origin master).
2. Prepisati promjene početnim stanjem
a) Do početnih datoteka doći sa:
$ git checkout 1d33c53b94aec8bd5f1440f2edfa3d2f7dc97413 //zamijeniti id-jem prvog commita! $ mkdir ../privremeno $ cp -r * ../privremeno/b) Obrisati sve iz direktorija (osim
.git direktorija)
$ git checkout master $ rm -rf * //OPREZNO S OVOM NAREDBOM - provjerite da ste u repozitoriju!c) Kopirati izvorni sadržaj
$ mv ../privremeno/* .d) Dodati sve u repozitorij
$ git add -A $ git commit -m "vracam pocetno stanje" $ git push origin master
make ne smije javljati greške)
make qemu)
Ukratko:
git checkout lab1 cd Chapter_02_Source_tree/04_Debugging/ make make qemu make cleanall git diff masterSve treba biti prema očekivanome.