适用于Linux和Windows的Git子模块

Pet*_*oft 3 git git-submodules

git submodule在Linux上使用时,我可能会.gitmodules从例如/mnt/gitrepos/subsystem1.git(基于中心文件的访问)中检出一个或多个子系统.

[submodule "subsystem1"]
  path = subsystem11
  url = /mnt/gitrepos/subsystem1.git/
Run Code Online (Sandbox Code Playgroud)

我还想支持一个可以访问相同模块repo的Windows用户H:/gitrepos/subsystem1.git/.

例如,来自Linux的Samba共享/mnt/gitrepos/作为共享gitrepos.

有没有办法让Git可以根据操作系统处理URL行?对于Windows,.gitmodules将是

[submodule "subsystem1"]
  path = subsystem11
  url = H:/gitrepos/subsystem1.git/
Run Code Online (Sandbox Code Playgroud)

因此,我希望"类似"这个通用代码.gitmodules(推测语法):

[submodule "subsystem1"]
  path = subsystem11
  if Linux 
    url = /mnt/gitrepos/subsystem1.git/
  else
    url = H:/gitrepos/subsystem1.git/
Run Code Online (Sandbox Code Playgroud)

Jan*_*ger 8

不可以.子模块通常设计用于一个可在任何地方工作的存储库URL,通常是基于网络的(例如git://host/path).没有为一个存储库提供多个不同URL的机制.

也就是说,Git允许您自定义子模块的URL.初始化子模块(git submodule init)时,URL .gitmodules将复制到您的.git/config文件中.您现在可以在运行之前编辑其中的URL git submodule update.