В настоящее время у меня есть две ветви, называем его А и В:Как сказать git, что два коммита одинаковы?
B1-...many dirty checkouts...-B2
/
--O-A1-A2-......................-A3
В настоящее время, В2 и А3 одинаковы (git diff A B
дает пустой выход).
Теперь проблема заключается в том, что это состояние было достигнуто путем частичной проверки от A. I.e. много раз git checkout -- dir1 dir2
... произошло, а не git merge
.
Простое слияние B с A полностью craps A, что невозможно.
Я не хочу потерять историю Б.
Как-то я должен сказать git, что git merge A
на ветке B ничего не должен делать.
Конечно, я мог бы просто заменить B2 на A3, но в этом случае я потерял бы историю B.
Как это возможно?
Я не понимаю, что вы пытаетесь сделать. Если нет различий, почему слияние проблемы? –
Вы пытаетесь сохранить историю B и заменить историю A = B? –
@MadPhysicist «грязная проверка» означает, что некоторые «git checkout - dir1», «git checkout - dir2» и т. Д. Произошли (и некоторые другие слияния между ними тоже). Теперь A3 и B2 точно совпадают, поэтому diff пуст, но git его не знает. – peterh