Автоматически разрешать конфликты в определенных строках, используя поиск / замену
Произошло какое-то недоразумение, которое привело к конфликту в 100+ файлах. Однако конфликт очень легко разрешить. Один набор файлов имеет:
// In .h files
virtual bool exec();
// in cpp files:
bool SomeClassName::exec() {
А другой набор имеет:
// In .h files
virtual bool work();
// in cpp files:
bool SomeClassName::work() {
Я хотел бы решить это автоматически. Выполнение этого вручную заняло бы два часа или больше. Как я могу найти и заменить work()
в exec()
? Помимо git, я также могу использовать SourceTree и BeyondCompare, если это может помочь в моей ситуации.
Обратите внимание, что для разрешения дополнительного конфликта может потребоваться разрешение вручную, поэтому файлы не должны автоматически помечаться как разрешенные.
1 ответ
Иногда имеет смысл внести некоторые изменения до фактического слияния. Например, в этом случае переименование метода может быть выполнено ранее с помощью функции рефакторинга IDE.
Если слияние уже выполняется, оно может быть прервано git merge --abort
(убедитесь, что вы сохранили разрешенные файлы), он восстановит репозиторий до версии перед слиянием.