Jeg gjorde en git commit
, men jeg har ikke pushet den til depotet ennå.
Så når jeg gjør git status
, får jeg '# Din gren er foran 'master' med 1 commit.
Så hvis jeg ønsker å rulle tilbake min øverste commit, kan jeg bare gjøre det:
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
gitt at når jeg gjør git log
får jeg:
pre> commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Date: Tue Sep 29 11:21:41 2009 -0700
commit db0c078d5286b837532ff5e276dcf91885df2296 Date: Tue Sep 22 10:31:37 2009 -0700
Faktisk, når du bruker git reset
, bør du referere til den commit du tilbakestiller til; så du vil sannsynligvis ha db0c078
commit.
En enklere versjon ville være git reset --hard HEAD^
, for å tilbakestille til forrige commit før nåværende head; på den måten slipper du å kopiere rundt commit-ID-er.
Vær forsiktig når du gjør en git reset --hard
, da du kan miste eventuelle ukommiterte endringer du har. Det kan være lurt å sjekke git status
for å forsikre deg om at arbeidskopien din er ren, eller at du ønsker å slette eventuelle endringer som er der.
I tillegg kan du i stedet for HEAD bruke origin/master
som referanse, som foreslått av @bdonlan i kommentarfeltet: git reset --hard origin/master
.
Hvis du IKKE har pushet endringene dine til remote.
git reset HEAD~1
Sjekk om arbeidskopien er ren ved hjelp av git status
.
Hvis du ikke har overført endringene til remote.
git revert HEAD
Denne kommandoen reverserer/fjerner den siste endringen, og deretter kan du pushe endringene til
git reset --hard origin/master
for å tilbakestille den til opprinnelsespunktet.
Dette ble lagt ut av @bdonlan i kommentarer. Jeg la til dette svaret for folk som ikke leser kommentarer.