Виталий Бохин
953 сообщения
#3 года назад
Приветствую всех. Нужна подсказка знающих людей. Есть старый код, в который вносили изменения другие, и есть новый, который чем то схож со старым но больше отличается. Нужно слить эти два кода в один. Его много, и искать изменения глазами нереально. Решил попробовать слить гитом,  сделал ветку, потом в этой ветке заменил код на старый и пытался просто смерджить, в надежде хотя бы увидеть конфликты, что отличается, и поправить руками. Но гит просто заменяет всё, без конфликтов. Как заставить гит слить все в один файл, пусть с конфликтами, чтоб видеть изменения? Приблизительная структура:

master file.js (новый код)
function f11(){
console.log(_1_);
console.log(_2_);
}

function f22(){
console.log(_1_);
console.log(_2_);
}


function f33(){
console.log(_1_);
console.log(_2_);
}
temp file.js (старый код)
function f44(){
console.log(_1_);
console.log(_2_);
}

function f22(){
console.log(_11_);
}


хотелось бы видеть на выходе приблизительно:
function f44(){
console.log(_1_);
console.log(_2_);
}

function f11(){
console.log(_1_);
console.log(_2_);
}

function f22(){
console.log(_1_);
console.log(_2_);
console.log(_11_);
}


function f33(){
console.log(_1_);
console.log(_2_);
}

но происходит просто замена полностью
Евгений К.
731 сообщение
#3 года назад
В phpstorm есть сравнение умное, может им получится ? 
compare with
Виталий Бохин
953 сообщения
#3 года назад
crus94, не юзаю phpstorm, но спасибо за наводку, нашел в vs code такую функцию сравнения
Томи Т.
18 сообщений
#3 года назад
Git merge объединяет файловую структуру с заменой файлов при совпадении. Чтобы объединять сами файлы нужен сборщик типа webpack.