有没有一种方法可以将子模块添加到非空目录

时间:2019-06-24 18:49:58

标签: git git-submodules

我试图将一个通用文档(几乎所有我的产品都使用)添加到一个文件夹中,该文件夹包含我项目所必需的其他文档。当我使用git子模块add时,出现错误,指出目录不为空。如果我以其他方式添加它,它将创建一个新的子目录,该子目录会断开我到该文件的所有链接。

2 个答案:

答案 0 :(得分:0)

子模块位于其自己的目录中,主要是因为git不存储目录,而是存储指向子模块当前头的“文件”。这意味着要么您可以将文件添加到子模块,要么就不能将该目录用于子模块。

答案 1 :(得分:0)

如果我对您的理解正确,那么您的项目X的结构如下:

if CPU == 2

..然后在另一个git存储库中有一个公共项目,该项目包含(至少)一个您要集成到项目X的文档?

(我还假设您有一个用于执行命令的bash shell。)

假设这样,您也许可以使用符号链接来解决问题?

首先,将公共项目添加为根目录中的子模块:

print

现在有

import csv
with open('test.csv', 'rb') as csv_file:
    dict_reader = csv.DictReader(csv_file)
    for d in dict_reader:
        if d['CPU'] == '2' and d['OS'] == 'windows' and d['Memory'] == '4gb':
            print(d['Name'])

现在,转到docs子目录并创建指向commondoc.txt的链接:

- /
  +- docs/
     +- projectdoc1.txt
     +- projectdoc2.txt

然后,您可以像添加普通文件一样添加链接:

git submodule add my-common-repo.git

就是这样。现在您有了:

- /
  +- docs/
  |  +- projectdoc1.txt
  |  +- projectdoc2.txt
  +- my-common-repo/
     +- commondoc.txt

每当您更新my-common-repo /子模块时,docs / commondoc.txt就会保持最新状态。