У меня есть проект с ведущей ветвью и устойчивой ветвью - ветви расходятся давно. Теперь у меня есть пара фиксаций на стабильной ветке, которую я также хочу иметь на главной ветке (исправление ошибки). Я не могу слиться, так как ветви расходятся, и есть множество несвязанных изменений - я просто хочу 4 коммитов.Применяя те же изменения к разрозненным ветвям GIT
Так что я попробовал вишневый подбор. Однако это терпит неудачу, поскольку имена модулей верхнего уровня изменились с схемы «проект-модуль» на «модуль». При наборе вишни, GIT создает новые файлы в старых каталогах (как на старой ветке): переименование не обнаружено. Это возможно потому, что я получаю это предупреждение:
warning: too many files (created: 278 deleted: 5364), skipping inexact rename detection
Я пытался мерзавец формат-патч + GIT утра, но это опять-таки создает файлы в старых каталогах.
Как я могу применить фиксации к основной ветке?
Спасибо, Адам
Я остановился получив ошибку, но cherry-pick по-прежнему создает каталог, как и в старой ветке, вместо того, чтобы патчировать файлы в новой ветке. Я думаю, мне нужен способ применить некоторые коммиты, делая какой-то перевод пути ... любым другим способом, чем git format-patch + старый патч UNIX -n? Спасибо за подсказку с общим предком, я попробую в следующий раз. Хотя здесь я объединил запрос на pull, поэтому у меня не было большого контроля над тем, что было родителем ... – adamw
Хммм, да, я могу вернуться к редактированию патчей «manual» (т. Е. 'Sed'). Вы все равно должны использовать 'git apply', но вместо' patch'. Он поддерживает все небольшие расширения, которые git делает в формате патча. – Cascabel
@adamw: Я только что заметил фиксацию в git.git: [merge-recursive: опция для указания порога переименования] (http://git.kernel.org/?p=git/git.git;a=commit; h = 10ae7526beb505ddddba01f76ec97d5f7b5e0e5) - возможно, ваши файлы не совсем в пределах порога, и вы можете заставить его работать так, как вы хотите, сделав его более мягким. (Предполагая, что вы еще не сделали это вручную). – Cascabel