是否可以跟踪我的仓库中的文件夹,并跟踪与其自己的仓库相同的文件夹?

Is it possible to track a folder in my repo, and also track the same folder as its own repo?

我正在使用我的顶级项目存储库,其中包含一个子文件夹,该子文件夹是项目代码和一些构建代码的组合。我想在我的顶级存储库中跟踪这个子文件夹,但我还需要将这个子文件夹作为其自己的存储库的一部分进行跟踪,因为我们需要使用 Git 将我们的子文件夹直接部署到我们的网络平台。

这是顶级回购协议的样子:

|--js
|----lib
|----src
|--sass
|--template
|----assets
|----collections
|----scripts
|----styles
|----.gitignore
|----site.region
|----template.conf
|--.eslint
|--.gitignore
|--package.json
|--README.md
|--webpack.config.js

我想跟踪您在我的顶级存储库中看到的所有内容。

但是,template 需要 Git 远程用于我们的网络平台,因此此文件夹也必须是 git 存储库。

如何最好地进行设置?我已经阅读了子模块,但我不确定在这种情况下是否会对我有所帮助。我的网络平台设置为仅接受 template 文件夹,仅此而已。

我认为子模块是正确的答案。通过以下命令:

git submodule add template_remote_repository templete

您将从远程克隆模板工作树。您可以像在其他 git 工作树中一样在模板文件夹下工作,除了使用不同的遥控器。

按照您问题中的建议添加子模块文件夹。

git submodule add <url>

现在,当您克隆项目时,您只需初始化并更新子模块

git submodule init
git submodule update

Git 1.8.2 具有一个新选项 --remote

 git submodule update --remote --merge

--remote

This option is only valid for the update command. Instead of using the superproject’s recorded SHA-1 to update the submodule, use the status of the submodule’s remote-tracking branch.

这相当于每个子模块中的运行git pull


这是子模块的样子 - 存储库中的存储库: