git - 是否可以将来自多个路径的文件放入一个 git 存储库?

标签 git path repository file-structure

我们有一个商业 WordPress 主题,其中包含一些插件。插件是主题的一部分,它们不单独出售,没有主题也不能使用。

主题路径如下:

/wp-content/themes/MyTheme/

虽然关联的插件位于以下路径中:

/wp-content/plugins/MyPlugin/

我们不希望每个插件有一个不同的存储库。由于整个主题和插件相互依赖,同时更新,不能独立运行。

当我们添加一个功能时,我们将代码添加到插件和主题,然后提交。 每次我们进行更改时都提交到两个存储库是完全没有意义的。

我们之所以将一些功能分离到外部插件中,而不是将它们 merge 到主题本身中,是因为我们需要根据提供该主题的市场规则这样做。

最后,我们不希望在整个 /wp-content/ 目录中拥有存储库,这将需要太多的 git-ignore 条目,尤其是当我们有其他主题时存储库。此外,虽然这不是真正的问题,但当前的文件结构允许单击“下载”GitHub/Bitbucket 上的任何标签/分支并直接上传到 WordPress 管理员,主题按原样工作,而如果文件结构从 /wp-content/ 然后用户将不得不提取文件,恢复主题部分,创建一个具有固定文件结构的新 ZIP(避免使用 FTP),最后才能将其上传到WordPress 管理员。

那么,有没有办法让一个存储库具有多个路径?

我在 this other question 中读过有关符号链接(symbolic link)的信息但正如提问者所说:

"i dont really want any mixing of the two folders on my computer"

最佳答案

一种方法是将 git 目录(.git)和工作树视为分开的。

"I don't really want any mixing of the two folders on my computer"

只要您的存储库与实际使用这些文件的结构/内容不同 (wp-content),您就必须处理两个文件夹结构

你的 repo(只有你的主题和插件文件)可以在某处 check out 。
您的 WordPress 结构可以在其他地方开发。

即使你不想使用符号链接(symbolic link),你仍然可以让你的 git repo 知道 wordpress 文件夹中的任何变化:

cd /your/repo
git --work-tree=/path/to/wp-content status
git --work-tree=/path/to/wp-content add .
...

关于git - 是否可以将来自多个路径的文件放入一个 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415764/

相关文章:

node.js - git status 没有显示我更改的文件

python - 如何更改我的构建配置,以便 cmd 指向 python 解释器的实际位置?

css - 如何将图像与模块耦合?

java - Spring启动 org.springframework.data.repository.config.BootstrapMode

c# - 无法在 C# 中将一个列表附加到另一个列表...尝试使用 AddRange

git - MacOS:使用 Bitbucket 和 Github、SSH key ?

git - 在 Go 语言中编写可靠的数据存储

Git:什么是索引

iphone - iOS 中可用的路径目录

ios - Github API 返回发布数组的空 Assets