我正在开发一个RESTful框架,可以选择构建HTTP和/或HTTPS支持。当前仅HTTP构建说明如下:
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] ..
make install
make test
我热衷于提交最新的HTTPS功能,但我希望能够在克隆过程中选择某些依赖项(git子模块),以帮助减少网络流量。
HTTP和HTTPS示例下拉所有依赖项。
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] ..
make install
make test
仅限HTTP示例下拉特定依赖项。
git clone --recursive="asio, framework" https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake -DBUILD_SSL=NO [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] ..
make install
make test
git --recursive似乎缺少此功能。
- 递归 --recurse-submodules创建克隆后,使用其默认设置初始化其中的所有子模块。这相当于 运行git submodule update --init --recursive之后立即执行 克隆完成了。如果克隆的存储库,则忽略此选项 没有工作树/结账(即如果--no-checkout / -n中的任何一个, --bare,或--mirror给出)
答案 0 :(得分:1)
正如文档所述,使用--recursive
选项和git clone
将初始化所有子模块。您可以运行以下命令,它直接使用git submodule
来初始化您在HTTP情况下所关注的子模块:
git clone https://github.com/corvusoft/restbed.git
git submodule update --init --recursive dependency/asio
git submodule update --init --recursive dependency/framework
mkdir restbed/build
cd restbed/build
cmake -DBUILD_SSL=NO [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] ..
make install
make test