Vi kan manipulere git-historikken ganske mye. Men, manipuleringen bør kun skje på vår lokale git-historikk. Offentlige publiserte releaser av koden vår skal holdes uforanderlig.
Reset
brukes for å unstage endringer, men det kan også brukes til andre ting.
Reset
er en risikabel kommando å tulle med, hvis du ikke vet hva den gjør. I denne oppgaven skal vi gå gjennom de tre forskjellige modusene for reset
.
Kjør source setup.sh
i terminalen (eller .\setup.ps1
i PowerShell)
- Hvordan ser working directory ut?
- Hvordan ser loggen din ut? Hvordan ser staging ut?
- Prøv å kjøre
git reset --soft HEAD~1
- Hva skjer med working directory, loggen din og staging?
- Kjør
git reset --mixed HEAD~1
- Hva skjer med working directory, loggen din og staging?
- Kjør
git reset --hard HEAD~1
- Hva skjer med working directory, loggen din og staging?
- Prøv nå å bruke
git revert HEAD~1
- Hva skjer med working directory, loggen din og staging?
git log --oneline
git commit --amend
git status
git reset --soft
git reset --mixed
git reset --hard
git revert
Dette er tatt fra [https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified]:
The reset command overwrites these three trees in a specific order, stopping when you tell it to:
- Move what the branch HEAD points to (stop here if --soft)
- Make the stage look like HEAD (stop here unless --hard)
- Make the working directory look like the stage