【发布时间】:2026-02-06 09:25:02
【问题描述】:
我按照 David Winter 的工作流程“使用 Git 安装和管理 WordPress”。 WordPress 是一个 git 子模块。在最新的 WordPress 3.9 升级中,我不小心通过 WordPress 管理员而不是通过 git 进行了更新。现在,当我运行 git status 时,我得到:
modified: wordpress (modified content, untracked content)
这是有道理的。但我无法提交修改后的 wordpress 内容。 WordPress 子模块很脏。如果我在我的主仓库中运行git diff,我会得到:
-Subproject commit 22bb60277036651db73dc872eaa7d2a50276b00d
+Subproject commit 22bb60277036651db73dc872eaa7d2a50276b00d-dirty
解决此问题的最佳方法是什么?如果我在我的主仓库中运行以下命令,它会弄乱我的 WordPress 安装吗? (注意:我还更新了一些插件。)
git clean -dfx # delete everything in the worktree that isn't tracked
git reset --hard # wipe all modifications to tracked files
git checkout 3.8.1 # return to previous version tag
更新:上面的命令完美运行。我查看了 git clean 上的文档以了解选项 'd'、'f' 和 'x' 是什么:https://www.kernel.org/pub/software/scm/git/docs/git-clean.html。在 WordPress 目录中运行之前的命令后,我能够签出 3.9 版本,从而正确更新 WordPress。
【问题讨论】:
-
您可以在 Wordpress 目录中运行这些命令,因为它有自己的子模块。它不应该影响任何插件。 Wordpress 目录应该是完全独立的,因此您也可以简单地删除它,然后再次克隆存储库。
-
谢谢。我在 WordPress 目录中运行命令,然后签出 3.9 标签。现在一切都很干净并已解决。
-
我更新了我的问题以包含分辨率。
-
@scpers0n 添加您的更新作为此问题的答案。
标签: wordpress git git-submodules git-reset