Her kommer en liten guide til hva man kan gjøre om det oppstår konflikter med git, som problemer når man prøver "Git → Pull".
Hvordan unngå problemer:
Først og fremst ønsker man å unngå disse problemene.
- Ikke lag pakker i andre prosjekter enn “minegenkode”. Dersom dere gjør det, kommer det til å oppstå pull-konflikter når dere prøver å hente fra git. Et eksempel på når det kommer til å oppstå konflikter er om du går inn på “ovinger —> src —> “new package “ —> ….“ og lager en ny pakke der som ikke er hentet fra git.
- Ikke lag egne klasser i "foreksempel"-prosjekter
Hvordan løse konflikter:
Når man trykker på “Git” i Meny-baren og deretter “Pull”, vil det stå følgende om det ikke er noen pull-konflikter.
Hvis det er en pull-konflikt vil det under “Update Result” stå "Result: Checkout conflict". Under “Conflicting Paths” vil det vises prosjektene og klassene hvor problemet ligger. På følgende bilde ser vi en git-konflikt hvor det blant annet er problemer med "Counter"-klassen og "DownCounterController"-klassen i mappen "foreksempel".
Om man har en slik konflikt, pass på å lagre det dere har opprettet som skaper konflikt i pakken “minegenkode”.
For å løse Checkout konflkten, kan dere prøve på følgende:
Oppdatere klassen som hadde konflikter
- Høyreklikk på klassen, f.eks “Counter.java” i ekesempelet over
- Velg “Replace With —> HEAD Revision”
- Om det kommer opp et vindu som heter "Discard Local Changes", velg "Discard Changes"
- Gjenta dette for alle klassene som hadde pull-konflikt, i dette eksempelet "DownCounterController.java", "Counter.java" osv.
NB! Dette kan også gjøres på hele pakker eller prosjekter.
Figur: punkt 1 & 2 Figur: punkt 3
Hvis dette ikke løser problemet, kan dere forsøke:
- “Replace With —> INDEX”
- “Replace With —> Previous Revision”
- “Replace With —> Branch, Tag, or Reference…”. Velg “Discard Changes”. Deretter, velg Branchen som inneholder ordet master under “Local” eller under “Remote Tracking” som på bildet, og trykk “Replace”.
Figur: de tre alternativene under punkt 1, 2 og 3
Figur: punkt 3
Hvis det enda ikke har løst problemet er det mulig dere jobber på feil branch. Isåfall må dere bytte branch til den riktige, som gjøres på følgende måte:
Sikre at dere er på riktig Branch:
1. Trykk på “Git —> Reset” i Menybaren
2. Under “Remote Tracking”, velg siste branch. Dette skal være den som heter “origin/master…..”. For å være sikre på at dere er på rett branch, kan dere sjekke at hvilken branch som har senest dato under “Committer”. I dette tilfellet er siste branch lastet opp 12.02 kl. 14:00:39
3. Trykk “Reset”
Figur: punkt 1 Figur: punkt 2 & 3