Я не уверен, что правильный подход к этому сценарию в git, что бы я ни делал, я получаю странные результаты.
У меня есть версия X файла на коммите A. Со временем этот файл был изменен и теперь находится на коммите A '.
Кто-то отправил мне электронное письмо с файлом X ', который является модифицированной версией файла, который содержался в комитете А. Важно: это изменение является внеполосным (по электронной почте и не git) и устаревшим (изменения к более ранней версии файла).
Я точно знаю, что я «хочу» делать в терминологии git, но я не уверен, что это может быть самым чистым способом: перемотать, зафиксировать, воспроизвести. Я предполагаю, что это должно быть так просто, и я знаю, что git делает это внутренне , когда перезагружается, но я не могу заставить его работать самостоятельно.
Что я сделал:
- Оформить заказ и создать новую ветку B на основе коммита A.
- Скопируйте и вставьте измененный файл
- Передать изменения
- Оформить заказ мастер филиала
- Слияние ветки B
Моя проблема в том, что слияние ветви B с master приводит к конфликту для всех строк в файле.
Изменения в файлах (думаю, поэтому) следующие:
Версия A:
line 1
line 2
line 3
Мастер филиала:
line 1, file 1
line 2, file 1
line 3, file 1
отправленный по электронной почте файл:
line 1
line B
line 3
Как вы можете видеть, мастер веток включает в себя изменения во всех строках, но линии остаются нетронутыми. Внеполосные изменения - это модификация строки 2.
Слияние говорит мне, что ВСЕ строки в документе конфликтуют. Я могу понять, если git просто не может объединить изменения из строки 2 в две ревизии, но я не понимаю, почему все 3 строки помечены как конфликтующие.
Может кто-нибудь помочь мне?