0

我有一个包含 WordPress 站点的 git 存储库,根文件夹如下所示:

/wp-admin
/wp-content
/wp-includes
index.php
license.txt
readme.html
wp-activate.php
wp-blog-header.php
wp-comments-post.php
wp-config-sample.php
wp-cron.php
wp-links-opml.php
wp-load.php
wp-login.php
wp-mail.php
wp-settings.php
wp-signup.php
wp-trackback.php
xmlrpc.php

但是,位于其中的主题文件夹/wp-content/themes/<theme-name>/是我需要在此 git 存储库中进行版本控制的唯一文件夹。我希望这个存储库的根文件夹只显示这个主题文件夹的内容。

然而:

  • 我不想丢失任何提交历史
  • 我想保持文件原样,只需更改 git 存储库的位置
4

1 回答 1

1

由于git不跟踪文件,就像内容一样,您可以保存以移动内容:

git rm *php license.txt readme.html /wp-admin /wp-includes -r
git mv /wp-content/themes/<theme-name>/* .
git rm /wp-content/ -r
git commit

这是所有的了。你会看到你的历史仍然存在,但你的根现在是主题。

git 的好处是你的存储库是独立的。所以,如果你想先尝试这个,而不会有破坏你 git 技能之外的东西的风险,你可以简单地cp /path/to/project/root /backup/project/backup/project. 显然,您应该小心不要从那里推送更改。另一种更完整的 git 方法是创建一个分支并在该分支中玩耍,但我的经验是,不太熟悉 Git 的人有一种更难的方式来管理它,然后是“沙盒副本”。

除了git您提到的部分之外,您还希望将结构的其余部分保持在原位。要做到这一点:

进行备份(在您的项目内部,在其他任何事情之前):

git archive HEAD > /tmp/my_project.tar

现在运行上面提到的 git 东西,即让你的 git-repo 只包含你的主题。

然后,提取存档并将仅主题的 repo 放在那里:

cd ..
mv <project-name>/ <theme_name>/ #your repo is now in a folder after the name of the theme
mkdir <project-name>/
tar -xf /tmp/my_project.tar <project-name>/ #extract the backup in the project-name folder.
rm -rf <project-name>/wp-content/themes/<theme-name>/ #remove the old theme
mv <theme-name>/ <project-name>/wp-content/themes/ # and move the git-repo with the theme in place of the old theme.
于 2013-10-07T12:55:18.753 回答