Итак, у меня есть несколько сайтов Wordpress, управляемых с помощью Git-репозитория, и все они являются ветвями центрального верхнего уровня Git-репозитория. Недавно я применил несколько обновлений к родительскому репо, но одно из дочерних репозиториев веб-сайта обновило плагин до другой версии и теперь вызывает около 400 конфликтов переименования / переименования. Все эти конфликты находятся в каталоге плагинов восходящего потока, который можно было бы просто разрешить в пользу ветки восходящего потока.
Я хочу сделать следующее:
- Убедитесь, что исходная версия файлов "выигрывает" конфликт слияния (например, что делает флаг --theirs с checkout)
- Создание объединяемой истории (Если коллеге небезопасно набирать «git pull origin master» со старым репо, это не вариант. Я религиозно против перебазирования.)
- Не реструктурировать мой Git-репозиторий (Мой хостинг-провайдер, Pantheon, не будет устанавливать зависимости Composer во время развертывания. Вышестоящие плагины должны быть частью репо.)
- Не получить повторяющуюся травму из-за стресса (должно быть достаточно небольшое количество команд, потому что я должен разрешать подобные ошибки один раз в месяц или около того).
Если я просто наберу "git checkout wp-content / plugins / ** --theirs", мне попадет в лицо около 400 ошибок, и Git отказывается проверять файлы. Они выглядят так:
....400 or so errors omitted...
error: path 'wp-content/plugins/wordpress-seo/js/dist/wp-seo-quick-edit-handler-710.min.js' does not have their version
error: path 'wp-content/plugins/wordpress-seo/js/dist/wp-seo-quick-edit-handler-720.min.js' does not have their version
error: path 'wp-content/plugins/wordpress-seo/js/dist/wp-seo-recalculate-710.min.js' does not have their version
error: path 'wp-content/plugins/wordpress-seo/js/dist/wp-seo-recalculate-720.min.js' does not have their version
Я категорически отказываюсь набирать 400 команд git rm / git add с каждым включенным отдельным путем. git checkout --force не является опцией, так как --theirs и --force несовместимы друг с другом (по некоторым причинам). Мое текущее решение состоит в том, чтобы открыть Git GUI и вручную щелкнуть правой кнопкой мыши -> Использовать удаленную версию и затем нажать Да ... 400 раз. Мне не нужно вводить путь, по крайней мере, но это все еще занимает много времени.
Как эффективно разрешить большое количество конфликтов переименования / переименования в пользу удаленного хранилища?