проблема, возникающая с git revert, вызывает конфликт слияния - PullRequest
0 голосов
/ 10 января 2019

У меня есть текстовый файл со следующим содержанием:

initially:
hello

first commit:
hello
asdfasdf

second commit:
hello
test 

third commit:
hello
test
test2 

Теперь я хочу вернуться ко второму коммиту, но у меня конфликт слияния, почему?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

git revert - это слияние,

Init---first---second---third

изменений от вашего возвращенного second коммита к его родителю (то есть удалите строку test и замените его asdfasdf) с изменением вашего обратного коммита на текущий совет (добавьте строку test2 после строки test).

Итак, в одном наборе изменений вы удалили строку, в другом - сохранили ее и добавили больше. Вопрос, на который Git отказывается отвечать автоматически, относится к тому, относится ли добавленная вами строка test2 к строке test, которую вы заменили в других изменениях.

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

Когда изменения «очевидно» не связаны, может быть трудно представить, почему Гит думал, что они могут быть, или вообще видеть смежность, но это то, что здесь происходит. Вы нашли случай, который является своего рода броском, если вам легко сделать это правильно, без больших потерь, просто выберите, это займет секунды.

0 голосов
/ 15 января 2019

Внимание, --hard уничтожает файлы рабочих папок.

Если вы находитесь в основной ветке, когда на третьей ревизии вы можете сделать:

git reset --hard master~

Это возвращается к основной ревизии предка, помещая эту ревизию как в кэш git, так и в рабочую папку.

Теперь вы можете снова внести изменения во вторую редакцию в рабочей папке, добавить их и продолжить.

Вы, вероятно, не использовали никакой опции, поэтому git выбрал --mixed, который возвращает кеш, но не рабочий каталог (но я догадываюсь, что вы здесь сделали)

Будьте осторожны, прежде чем использовать --hard, а также см. Также здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...