Pracuję więc nad projektem z innymi ludźmi i pracuję nad wieloma widelcami github. Ktoś właśnie naprawił problem i połączyłem się z jego widelcem, ale potem zdałem sobie sprawę, że mogę znaleźć lepsze rozwiązanie. Chcę cofnąć właśnie zatwierdzone zatwierdzenie. Próbowałem to zrobić, git revert HEAD
ale otrzymałem ten błąd:
fatal: Commit <SHA1> to scalenie, ale nie podano opcji -m.
Co to znaczy? Kiedy się połączyłem i zatwierdziłem, użyłem opcji -m, aby powiedzieć „Połączono z <nazwa_użytkownika>”.
Co robię tutaj źle?
źródło
git cat-file -p [MERGE_COMMIT_ID]
pokaże gałęzie nadrzędne w kolejności. Pierwszy z wymienionych będzie-m 1
, drugi-m 2
.git revert [HASH] -m 2
mówi mi W gałęzi 1.x-1.x nic do zatwierdzenia, katalog roboczy jest czysty, ale moje zatwierdzenie nie zostało przywrócone.Powiedzmy, że ten drugi facet stworzył pasek na foo, ale w międzyczasie stworzyłeś baz, a następnie połączyłeś się, dając historię
Uwaga: git lola to niestandardowy, ale użyteczny alias.
Brak kości z
git revert
:Charles Bailey jak zwykle udzielił doskonałej odpowiedzi . Używanie
git revert
jak wskutecznie usuwa
bar
i tworzy historięAle podejrzewam, że chcesz wyrzucić zatwierdzenie scalania:
Jak udokumentowano w
git rev-parse
instrukcjiwięc przed wywołaniem
git reset
,HEAD^
(aHEAD^1
) był b7e7176 iHEAD^2
był c7256de, to znaczy , odpowiednio, pierwsze i drugie rodzice seryjnej zatwierdzenia.Bądź ostrożny,
git reset --hard
ponieważ może zniszczyć pracę.źródło
lola
dodanie do poleceń git:git config --global alias.lola "log --graph --decorate --pretty=oneline --abbrev-commit --all"
Miałem ten problem, rozwiązaniem było przyjrzeć się grafowi zatwierdzeń (używając gitk) i zobaczyć, że mam następujące:
Teraz rozumiem, że chcę to zrobić
Wynika to z faktu,
-m 1
że łączyłby się na podstawie wspólnego elementu nadrzędnego, gdzie podczas scalania na-m 2
podstawie gałęzi y, to jest ten, który chcę wybrać.źródło
git-revert
, o co chodzi w tym pytaniu.-m
opcji, a nie wyłączniegit merge
. Tj. Uzasadnienie zastosowania tej-m
opcji wydaje się podobne w przypadku zwrotów i wyborów wiśniowych. Jeśli to nieprawda, daj nam znać. Ponieważ nie znalazłem żadnych innych pytań, które konkretnie dotyczyłyby tego wybitnego wyboru, dziękuję za tę odpowiedź, która prawdopodobnie doprowadziła google do pomocy w znalezieniu tego pytania i przydatnej, odpowiedniej dyskusji!