Połączyłem gałąź beta w gałąź główna. Popchnąłem do pochodzenia. Teraz chcę, aby mistrz był taki, jak przed połączeniem, zarówno lokalnie, jak i zdalnie.Które zatwierdzanie mieszania ma na celu cofnięcie pchanego scalania za pomocą polecenia git-revert?
Dobrym rozwiązaniem dla undoing a merge that was already pushed sugeruje
git revert -m 1 commit_hash
Jeśli jest to rzeczywiście droga, jak mogę określić commit_hash? I bezskutecznie próbowała hash zwrócony przez merge-base:
$ git merge-base --all master beta
1f4b949b7ef97abf913ae672e3acd0907abfac1b
$ git revert -m 1 1f4b949b7ef97abf913ae672e3acd0907abfac1b
error: Mainline was specified but commit 1f4b949b7ef97abf913ae672e3acd0907abfac1b is not a merge.
fatal: revert failed
Mam badane zarówno git-log i gitk interpretacje oddziałów, ale są one bardzo długo i jestem niepewny dosyć mojej interpretacji czuć powinienem szukaj pomocy, zanim zrobisz większy bałagan. Beta została wyprowadzona z v2, która pochodzi od mistrza. Po drodze nastąpiły pewne fuzje od mistrza do wersji v2 i beta, ponieważ utrzymywałem nowe gałęzie na bieżąco z mistrzem. Fuzja w kierunku od beta do mistrza była błędem, który chciałbym poprawić.
Kiedy ustalę punkt scalenia, jeśli znajdę jakieś zatwierdzenia na master po fuzji, które naprawdę powinny znajdować się w gałęzi beta, jaki jest najlepszy sposób na ich przeniesienie?
Wypróbuj 'log --all - graf --pretty = tformat: '% Cred% h% Creset -% C (żółty)% d% Creset% s% Cgreen (% an% cr)% Creset' - abbrev-commit --date = relative' (Ja osobiście to pseudonim), wyświetli zatwierdzenia wszystkich gałęzi i ich daty, a także miejsce, w którym nastąpiło scalenie. –