有两个复杂的项目和我新创建的项目,为了简单起见,所有托管在Github上,说
https://github.com/vendor/asset/
,https://github.com/standard/metadata/
和https://github.com/me/mashup/
。在我的项目中,我只需要第一个存储库中的一个子树(即文件夹及其中的所有文件),比如./assets/img/
,以及第二个文件夹中的单个文件(每个来自其主分支) ,说./data/names.json
。两者都会不时更新。
据我理解.gitmodules文件和git submodule命令的文档,没有办法直接实现这一点。这意味着以下(或类似的东西)不起作用:
[submodule "assets"]
path = images/vendor
url = git://github.com/vendor/asset.git:/assets/img/
[submodule "metadata"]
path = standard-names.json
url = git://github.com/standard/metadata.git:/data/names.json
这里的最佳做法是什么?我可以将子模块放在隐藏文件夹中,并在我想要的地方创建符号链接吗?
images/vendor -> .ext/vendor/assets/img/
standard-names.json -> .ext/standard/data/names.json
答案 0 :(得分:1)
git子模块可以限制为单个资源吗?
不,克隆=有一个或多个分支的孔回购。
这里的最佳做法是什么?
Dunno,但我发现:https://stackoverflow.com/a/18590081/2093187
我可以将子模块放在隐藏文件夹中,并在我想要的地方创建符号链接吗?
是的,请参阅上面的链接。
另一种方法是使用
修改你的git(status)命令git()
{
if [[ $# -ge 1 && "$1" == "status" ]]
then
echo Your git-status pre-hook…
# wget -O destination url
curl -o destination url
fi
command git "$@"
}
将它放在.bashrc(或.bashrc。在Windows上)。