1

У меня есть ветка release-x.x.x, что я хотел бы объединиться в мастер. Однако, когда я делаю запрос на растяжение, у него сотни конфликтов слияния. Я думаю, это связано с миграцией Swift 3, которую я выполнял. В любом случае я хочу использовать все версии файлов в release-x.x.x при объединении в master. Я сделал checkout release-x.x.x и git merge -s recursive -X ours master. Я делаю это в обратном порядке, чтобы разрешить конфликты на release-x.x.x, а затем создать запрос на растяжение по master и сохранить всю историю фиксации.Устранение конфликтов с добавлением и удалением Git

Когда я бегу git status, это часть продукции:

added by us:  Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/FirebaseCrash 
added by us:  Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/Headers/FIRCrashLog.h 
added by us:  Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/Headers/FirebaseCrash.h 
added by us:  Pods/FirebaseCrash/Frameworks/frameworks/FirebaseCrash.framework/Modules/module.modulemap 
deleted by them: Pods/FirebaseCrash/README.md 
deleted by them: Pods/FirebaseCrash/batch-upload 
deleted by them: Pods/FirebaseCrash/upload-sym 
deleted by them: Pods/FirebaseCrash/upload-sym-util.bash 
deleted by us: Pods/FirebaseInstanceID/CHANGELOG.md 
added by us:  Pods/Intercom/Intercom/Intercom.framework/Versions/A/Intercom 
both added:  MyProject/Base.lproj/Localizable.stringsdict 
both deleted: MyProject/Localizable.stringsdict 
both added:  MyProject/en-HK.lproj/Localizable.stringsdict 

Я предполагаю, что я хочу, чтобы что-нибудь с added by us, both added, а также сохранить что-нибудь отмечен deleted by them, так что я поставил эти файлы. Как я могу заниматься deleted by us и both deleted? Если я попробую git rm Pods/FirebaseInstanceID/CHANGELOG.md, то я получаю ошибку: Pods/FirebaseInstanceID/CHANGELOG.md: needs merge. Я вообще на правильном пути?

ответ

2

Да, вы на правильном пути. Чтобы разрешить слияние таким образом, вы должны указать git rm любые файлы, отмеченные deleted by us или both deleted.

Ошибка needs merge должна быть просто предупреждением. Когда я бег git rm <file> на файл удален с одной стороны в слиянии, я получаю:

<file>: needs merge 
rm '<file>' 

И последующее git status показывает, что файл был удален (и удаление было поставлено).