Git revert обычно работает на коммитах только с одним родителем. Не предоставляя родителя по умолчанию, git гарантирует, что вы знаете, что отменяете коммит с двумя родителями, и продумали, что это значит. (Я просто догадываюсь, почему они по умолчанию не -m 1
.)
Вам нужно использовать -m 2
, если вы хотите отменить изменения, внесенные в другую ветку. Например, предположим, что вы сливаете ветку feature
в ветку master
. Затем, если вы хотите отменить этот коммит слияния, вы обычно возвращаете feature
ветвь "из" главной ветви с помощью -m 1
. (Конечным результатом возврата является предыдущий коммит в основной ветви.) Если бы вместо этого вы сделали -m 2
, вы бы «вернули мастер из ветви функций». Это редко имеет смысл (потому что конечное состояние будет таким же, как текущий HEAD
вашей feature
ветви, но с некоторыми дополнительными коммитами, которые применяют некоторые изменения, а затем отменяют их). (Конечным результатом возврата будет предыдущий коммит в ветви feature .)