因此,我有许多使用 Git 存储库管理的 Wordpress 站点,所有这些站点都是中央上游 Git 存储库的分支。我最近对父 repo 应用了一堆更新,但是其中一个子网站 repos 有一个插件更新到不同的版本,现在引发了大约 400 个重命名/重命名冲突。所有这些冲突都在上游插件目录中,可以安全地解决有利于上游分支的问题。
我想做以下事情:
- 确保文件的上游版本“赢得”合并冲突(例如 --theirs 标志对结帐的作用)
- 产生一个可合并的历史(如果一个同事用旧的仓库输入“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 次。我至少不必输入路径,但这仍然很耗时。
如何有效地解决大量重命名/重命名冲突以支持远程存储库?