Автоматически разрешать конфликты в определенных строках, используя поиск / замену

Произошло какое-то недоразумение, которое привело к конфликту в 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 (убедитесь, что вы сохранили разрешенные файлы), он восстановит репозиторий до версии перед слиянием.

Другие вопросы по тегам