Wprowadziłem kilka zmian w repozytorium git, które chcę cofnąć.Cofnij szybkie przewijanie do przodu
My git repo wyglądało tak:
A-B---- master
\ /
C-D * develop
byłem na develop
oddziału, zapomniał, że różnił się od master
branży, dokonała zmiany na develop
, połączyła je w master
, a następnie przekazać je do mojego zdalny (o nazwie publish
).
Ponieważ nie było zmian na wzorcu od B (wspólny przodek), git wykonał szybkie przewijanie do przodu.
Teraz moje repo wygląda następująco:
A-B-C-D master, develop, remotes/publish/master, remotes/publish/develop.
Chciałem przywrócić ostatnią seryjnej, przywracając master
do B.
Z tego co czytałem w How to undo last commit(s) in Git? użyłem git reset sha-of-B
przywrócić mój master
Branża korekcie B.
pytania:
- Jak przywrócić
develop
do wersji D? - Jak następnie przenieść te zmiany z powrotem do zdalnego/publikowania?
Podpis na blogu podsumowujący i przechodzący do nieco dokładniejszych informacji o tym, co zrobiłem, powinienem zrobić i jak to naprawiłem: http://www.capnfabs.net/software/git-undoing-a-fast -forward-fge-when -you-shouldve-just-used-a-new-branch/ –
@SnowCrash zaktualizowany link: http://capnfabs.net/blog/2013/01/14/git-undoing-a-fast-forward-merge/ –
Dla jedynych programistów to chyba wszystko dobrze, ale dla tych, którzy współpracują, czy nie byłoby sensu używać 'revert' zamiast' reset'? – Snowcrash