我的项目使用Varying-Vagrant-Vagrants作为/machine
中的子模块。
VVV提供了通过自定义文件进行配置的可能性。我的自定义文件是:
machine/
├── Customfile
├── config
│ └── nginx-config
│ └── sites
│ └── mysite.conf
└── www
└── mysite
├── vvv-hosts
├── vvv-init.sh
└── wp-cli.yml
这些路径在VVV的.gitignore
文件中都被忽略。
在我的项目中提供这些文件的好方法是什么,以便在整个项目被递归克隆时,它们与vvv位于同一目录中? 希望无需制作跟踪这些文件的分支。
只需添加包含这些文件的子模块,就会产生以下结果:
$ git submodule add https://github.com/Varying-Vagrant-Vagrants/VVV.git machine/
'machine' already exists and is not a valid git repo
由于
答案 0 :(得分:0)
来自git help submodule
,
子模块允许将外部存储库嵌入专用存储库中 源树的子目录,始终指向特定的提交。
您对git submodule add
的调用正在抱怨,因为您正在尝试将外部VVV存储库嵌入子目录machine
中,正如消息所述,该子目录已存在并且不是有效的git存储库。< / p>
要获得所需的目录结构,machine
作为VVV目录的子目录,您必须将您的repo作为他们的子模块,而不是相反。
考虑到这一点,我不知道你怎么能得到一个git clone
来拉回两个回购并按照你的意愿组织它们。接下来最好的方法是让你的repo将VVV repo作为与你的machine
目录并行的子模块/子目录拉出来,并包含一个脚本,用于从VVV子目录中建立machine
的符号链接。