I have list of submodules in .gitmodules. I want to download a specific submodule i.e grpc only if there is some option enabled as true in config file. Since grpc is not required at times for my build. All submodules are in third-party directory. So .gitmodules is like:
[submodule "third-party/libzip"]
path = third-party/libzip
url = https://github.com/nih-at/libzip.git
[submodule "third-party/sqlite"]
path = third-party/sqlite
url = https://github.com/mackyle/sqlite.git
branch = sqlite-3.23.1
[submodule "third-party/grpc"]
path = third-party/grpc
url = https://github.com/grpc/grpc.git
Also is there a way to exclude the submodule specifically while executing command:
git submodule update --init --recursive
I would like to exclude grpc and submodules in grpc while submodule update. Something like:
git submodule update --init --recursive "exclude third-party/grpc"
From the git help:
update
Update the registered submodules to match what the superproject expects by cloning missing submodules and updating the working tree of the submodules. The "updating" can be done in several ways depending on command line options and the value of submodule..update configuration variable. Supported update procedures are:
...
...
When no option is given and
submodule.<name>.update
is set to none, the submodule is not updated.
So set update = none
in the configuration file. You can also explicitly give paths after --
to only update specific submodules. To do this on the fly and not change your configuration file, @PrashantShubham notes you can:
git -c submodule."third-party/grpc".update=none submodule update --init --recursive
Collected from the Internet
Please contact javaer1[email protected] to delete if infringement.
Comments