我正在开发一个与 git 存储库一起使用的小软件,我希望能够编写一些测试。为此,我在test-repo
项目中创建了一个文件夹,该文件夹本身就是一个 git 存储库。在我的测试中,我引用了该存储库,以确保我针对处于精确已知状态的存储库运行的命令。
我的问题是:我可以将该嵌套存储库版本作为项目主存储库的一部分吗?请注意,这与子模块解决的问题并不完全相同:嵌套存储库实际上是封闭项目的一部分,而不是外部引用的软件。
我正在开发一个与 git 存储库一起使用的小软件,我希望能够编写一些测试。为此,我在test-repo
项目中创建了一个文件夹,该文件夹本身就是一个 git 存储库。在我的测试中,我引用了该存储库,以确保我针对处于精确已知状态的存储库运行的命令。
我的问题是:我可以将该嵌套存储库版本作为项目主存储库的一部分吗?请注意,这与子模块解决的问题并不完全相同:嵌套存储库实际上是封闭项目的一部分,而不是外部引用的软件。
我认为问题在于 git 检测到自己的.git
文件并且不允许使用它们。但是,如果您将测试存储库的.git
文件夹重命名为不同的名称,例如_git
它将起作用。您只需要做的一件事就是--git-dir
在测试中使用 GIT_DIR 变量或命令行参数来指定文件夹。
即使它不是“外部引用的软件”,子模块仍然是一种很好的方法,因为它有助于捕获存储库的已知状态。
我宁愿将两者都放在repo
父test-repo
仓库“ project
”中:
project
repo
rest-repo
这样,我可以记录两者的准确 SHA1repo
和test-repo
.