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 repozitorijOvako 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 repozitorijonda 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.