在Linux上使用git submodule
时,我可能会有一个.gitmodules
子系统,其中一个或多个子系统是从/mnt/gitrepos/subsystem1.git
签出的(基于中心文件的访问)。
[submodule "subsystem1"]
path = subsystem11
url = /mnt/gitrepos/subsystem1.git/
我还想支持一个windows用户,他可以从
H:/gitrepos/subsystem1.git/
访问同一个模块repo。例如,linux中的samba共享
/mnt/gitrepos/
作为共享gitrepos
。Git有没有办法根据操作系统处理URL行?
对于windows,
.gitmodules
将是[submodule "subsystem1"]
path = subsystem11
url = H:/gitrepos/subsystem1.git/
因此,我想要“类似”这个
.gitmodules
(推测语法)的通用代码:[submodule "subsystem1"]
path = subsystem11
if Linux
url = /mnt/gitrepos/subsystem1.git/
else
url = H:/gitrepos/subsystem1.git/
最佳答案
没有。子模块通常是为一个在任何地方都可以工作的存储库url而设计的,通常是基于网络的(例如git://host/path
)。没有为一个存储库提供多个不同url的机制。
也就是说,git允许您自定义子模块的url。初始化子模块(git submodule init
)时,.gitmodules
中的url将复制到.git/config
文件中。现在可以在运行git submodule update
之前编辑那里的url。