Am făcut-o git commit
dar nu am împins-o de la depozitul încă.
Așa că atunci când am git status
, ajung '# filialei este înainte de 'master' de 1 a comis-o.
Deci, dacă vreau să se rostogolească înapoi sus se angajeze, pot face:
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
având în vedere că atunci când am git log
am primi:
comite eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Data: Tue Sep 29 11:21:41 2009 -0700comite db0c078d5286b837532ff5e276dcf91885df2296 Data: Tue Sep 22 10:31:37 2009 -0700
De fapt, atunci când utilizați git reset
, ar trebui să se refere la care comite o resetare la; deci, n-ai fi vrut db0c078
comis-o, probabil.
O varianta mai usoara ar fi git reset --greu de CAP^
, pentru a reveni la cel anterior se angajeze înainte de actualul șef; în felul ăsta nu't trebuie să fie copierea jurul comite acte de identitate.
Feriți-vă atunci când faci orice git reset ... e greu
, ca te poate pierde orice modificări neconfirmate trebuie. S-ar putea să doriți să verificați `git stare să asigurați-vă că copia de lucru este curat, sau că vrei să spulbere orice modificări care sunt acolo.
În plus, în loc de CAP, puteți folosi origine/masterca referință, după cum a sugerat @bdonlan în comentarii:
git reset ... e greu de origine/master
DACĂ NU ați împins modificările la distanță
git reset HEAD~1
Verificați dacă copia de lucru este curat de git status
.
Mai ai împins modificările la distanță
git revert HEAD
Această comandă va reveni/elimina ultimul commit/modifica și apoi puteți împinge
git reset --hard origin/master
pentru a reseta la ce a fost la origine.
Acest lucru a fost postat de @bdonlan în comments. Am adăugat acest răspuns pentru cei care don't citit comentarii.
Există două ramuri la această întrebare (Rulare înapoi o comite nu înseamnă că nu vreau să pierd toate modificările locale):
1. Pentru a reveni mai târziu comite și renunțați la modificări în angajamentul de fișier nu:
git reset --greu de CAP~1
2. Pentru a reveni mai târziu a comis, dar păstrează modificările locale (de pe disc) nu:
git reset-moale CAPUL~1
Acest lucru (mai târziu comandă) va duce la stat ar fi fost dacă ai făcut git add
.
Dacă doriți să unstage fișierele după asta, nu
git reset
Acum puteți face mai multe schimbări înainte de a adăuga și apoi comite din nou.
Elimina ultimul comite înainte de a împinge
git reset-moale CAPUL~1
1
înseamnă ultima comis-o, dacă doriți să eliminați ultimele două folosi 2
, și așa mai departe*
Am experimentat aceeași situație am făcut mai jos ca acest lucru mult mai ușor. Trecând comis-Id` puteți ajunge la special comite vrei să mergi:
git reset --hard {commit-id}
Cum doriți să eliminați ultimul comite astfel încât aveți nevoie pentru a trece comis-Id
în cazul în care aveți nevoie pentru a muta indicatorul:
git reset --hard db0c078d5286b837532ff5e276dcf91885df2296
Aceasta este ceea ce fac:
Prima casă filialei (pentru cazul meu "maestru" branch):
git checkout master
Apoi resetare de la distanță CAPUL^ (- l'll elimina toate modificările locale), forța curat și trage:
git reset HEAD^ --hard && git clean -df && git pull
Cred că una dintre aceste se va potrivi nevoie de dumneavoastră
1 - Undo se angajeze și să păstreze toate fișierele organizat:
git reset-moale CAPUL~;
2 - Undo comite și unstage toate fișierele:
git reset CAP~;
3 - pentru a Anula comite și elimina complet toate modificările:
git reset --greu de CAP~;