2014-04-25 17 views
7

Więc mam gałąź rozwijającą się z zatwierdzeniem, które chcę przywrócić. Więc wpisać git revert <commit-hash>Git Revert Not Working

Ale gdy biegnie ona mówi:

$ git revert 165702b305 
On branch develop 
nothing to commit, working directory clean 

Ten popełnić została wytropił jako sprawcą błędu i Id jak go przywrócić, ale z jakiegoś powodu jej nie działa. Czy to może być w jakiś sposób uszkodzone? Inne odpowiedzi i wyszukiwania nie były w stanie pomóc.

+0

Czy to możliwe, że wszystkie zmiany tego zatwierdzenia zostały już cofnięte w innych zatwierdzeniach i ten sam błąd ma inne pochodzenie? – Netch

+0

możesz wypróbować rozwiązanie poprzednich pytań: (1) http://stackoverflow.com/questions/4114095/revert-to-previous-git-commit (2) http://stackoverflow.com/questions/927358/how- to-undo-the-last-git-commit – kikicarbonell

+0

To pytanie nie ma wystarczająco dużo informacji, aby móc powiedzieć, co się dzieje. Być może jeśli dodasz wynik działania 'git log --oneline - graph --decorate', to mogłoby pomóc, ale zdaję sobie sprawę, że to pytanie jest już stare. – TheWarriorNamedFoo

Odpowiedz

1

miałem dokładny ten sam problem i składnia poniżej pracował dla mnie:

git revert -n master~5..master~2 
2

Gdyby sam problem przy użyciu:

git revert --no-commit <commit-id> -n HEAD 

pracował dla mnie

0

miałem ten sam problem i zakończył do robienia moich szans ręcznie. Myślę, że problem jest spowodowany innymi zobowiązaniami. Starałem się cofnąć więcej niż jeden raz, a ja popełnienia podczas moich powraca, a potem przestał działać

Proponuję stara:

git revert --no-commit <commit-id> -n HEAD 
-1

Ten pracował dla mnie:

git reset HEAD^ 

W ten sposób Mogę powrócić do momentu, w którym dokonałem zatwierdzenia i zachowam wszystkie zmiany, dzięki czemu mogę łatwo zmodyfikować tylko część kodu.

Mogę również wykonać to polecenie kilka razy, aby przenieść kilka zatwierdzeń w przeszłości i zachować wszystkie zmiany.

Działa w przypadku zatwierdzeń wprowadzonych w lokalnym repozytorium. Jeśli już wysłałeś (przesłałeś) swoje zatwierdzenia na serwer, będziesz musiał znaleźć inny sposób.