Как исправить этот конфликт при использовании git revert?

Я пытаюсь вернуться к более старой фиксации, но когда я это делаю, я получаю конфликт слияния. Почему это происходит?

Команда, которую я использовал:

git revert <commit id>

person Community    schedule 05.01.2021    source источник
comment
Отвечает ли это на ваш вопрос? Как разрешить конфликты слияния в репозитории Git?   -  person 1615903    schedule 05.01.2021


Ответы (1)


Большинство команд update-the-index-and/or-worktree представляют собой своего рода слияние изменений, которые вы хотите, с изменениями, которые у вас есть, оба набора рассчитываются на основе некоторой базы. Обновления, которые не являются слияниями, обычно (я не могу придумать исключения в данный момент) называются жесткими или принудительными.

Базовая версия (и расчетные изменения) зависят от того, что вы делаете. Для отката изменения, которые вам нужны, — это те, которые вернут фиксацию [ted snapshot], которую вы возвращаете, к ее родителю, поэтому основой является эта откатная фиксация, изменения, которые вы хотите отменить, его отличия от его родителя, изменения у вас имеется разница между этой базой, той, которую вы отменяете, и вашей текущей оплатой.

Правило Git для отказа от автоматического слияния ~перекрывается или примыкает к блокам изменений~. Это правило было проверено на живом огне: ослабьте его, и вы получите множество явно плохих слияний, уменьшите его, и вы отклоните множество в основном всегда хороших слияний.

Дело в том, что я думаю, что вы рассматриваете конфликты слияния как плохие вещи. Они не. Git сообщает вам, что изменения, которые вы хотите применить, те, которые откатывают эту фиксацию к своей родительской версии, перекрываются или примыкают к изменениям, которые вы уже применили в своей рабочей копии (достаточно часто где-то в истории с момента той фиксации, которую вы откатываете). ), и он спрашивает вас, как должен выглядеть результат: ~ вы хотите применить это изменение, и вы уже применили это другое последующее изменение, если я просто смешаю результаты вместе, история говорит, что результаты будут не такими, как все хотят так что проверьте, исправьте и добавьте правильный результат~.

person jthill    schedule 05.01.2021
comment
Итак, когда я получаю конфликт слияния, я должен объединить их? - person ; 05.01.2021
comment
Вы должны думать о том, что делаете, поэтому Git не может сделать это за вас, но да. Вам нужны изменения, о которых вы просили, Git просто сообщает вам, что там были применены другие изменения, поэтому посмотрите и решите, каким должен быть результат. - person jthill; 05.01.2021