Es izdarīju git commit
, bet vēl neesmu to pārvietojis uz repozitoriju.
Tāpēc, kad es veicu git status
, man parādās '# Jūsu filiāle apsteidz 'master' par 1 nodevumu.
Tātad, ja es gribu atsaukt savu top commit, vai es varu vienkārši izdarīt:
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
ņemot vērā, ka, kad es veicu git log
, es saņemu:
commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Datums: Tue Sep 29 11:21:41 2009 -0700commit db0c078d5286b837532ff5e276dcf91885df2296 Datums: Tue Sep 22 10:31:37 2009 -0700
Patiesībā, kad izmantojat git reset
, jums jāatsaucas uz kopiju, uz kuru jūs atiestatāt līdz; tāpēc, iespējams, jums būtu vajadzīga kopija db0c078
.
Vieglāka versija būtu `git reset --hard HEAD^``, lai atjaunotu iepriekšējo nodevumu pirms pašreizējā nodevuma; tādā veidā jums nevajadzēs kopēt nodevumu ID.
Uzmanieties, kad veicat git reset --hard
, jo varat pazaudēt visas neizdarītās izmaiņas. Iespējams, vēlēsieties pārbaudīt git status
, lai pārliecinātos, ka jūsu darba kopija ir tīra, vai arī, ka jūs patiešām vēlaties iznīcināt visas izmaiņas, kas tur ir.
Turklāt HEAD vietā jūs varat izmantot origin/master
kā atsauci, kā komentāros iesaka @bdonlan: git reset --hard origin/master
Ja neesat pārsūtījis izmaiņas uz attālo
git reset HEAD~1
Pārbaudiet, vai darba kopija ir tīra, izmantojot git status
.
Ja neesat nosūtījis savas izmaiņas uz attālināto tīklu
git revert HEAD
Šī komanda atgriezīs/izdzēsīs pēdējās izdarītās izmaiņas/izmaiņas, un pēc tam jūs varēsiet virzīt
git reset --hard origin/master
lai to atjaunotu uz sākotnējo vērtību.
To publicēja @bdonlan komentāros. Es pievienoju šo atbildi cilvēkiem, kas nelasa komentārus.