Так что я работаю над проектом с другими людьми, над которым работают несколько форков github. Кто-то только что решил проблему, и я слился с его форком, но потом понял, что могу найти лучшее решение. Я хочу отменить коммит, который я только что сделал. Я пытался сделать это с, git revert HEAD
но это дало мне эту ошибку:
Фатально: Commit <SHA1> - это слияние, но опция -m не указана.
Что это значит? Когда я слил и зафиксировал, я использовал опцию -m, чтобы сказать «Объединено с <username>».
Что я здесь не так делаю?
источник
git cat-file -p [MERGE_COMMIT_ID]
покажет родительские ветви в порядке. Первый в списке будет-m 1
, второй-m 2
.git revert [HASH] -m 2
В ветке 1.x-1.x мне ничего не говорится, рабочий каталог чист, но моя фиксация не отменена.Скажем, другой парень создал панель поверх foo, но вы тем временем создали базу, а затем слились, дав историю
Примечание: git lola - нестандартный, но полезный псевдоним.
Нет кости с
git revert
:Чарльз Бейли, как обычно, дал отличный ответ . Использование
git revert
как вэффективно удаляет
bar
и создает историюНо я подозреваю, что вы хотите выбросить коммит слияния:
Как указано в
git rev-parse
руководствепоэтому перед вызовом
git reset
,HEAD^
(илиHEAD^1
) был b7e7176 иHEAD^2
был c7256de, то есть , соответственно , первые и вторые родители слияния коммита.Будьте осторожны,
git reset --hard
потому что это может разрушить работу.источник
lola
в свои команды git:git config --global alias.lola "log --graph --decorate --pretty=oneline --abbrev-commit --all"
У меня была эта проблема, решение было посмотреть на график фиксации (используя gitk) и увидеть, что у меня было следующее:
Теперь я понимаю, что хочу сделать
Это потому,
-m 1
что слияние будет основано на общем родителе, где-m 2
слияния, основанные на ветви y, это то, что я хочу выбрать из вишни.источник
git-revert
, о чем этот вопрос.-m
варианте, а не только оgit merge
. То есть обоснование использования-m
опции, похоже, было бы схожим для возвратов и черриков. Если это не так, пожалуйста, дайте нам знать. Поскольку я не нашел никаких других вопросов, которые конкретно касались бы его использования, спасибо за этот ответ, который, вероятно, помог Google найти этот вопрос и полезную, актуальную дискуссию!