2011-05-23 130 views
2

我知道这很奇怪,因为git不应该保留空目录。这是我做过什么:添加文件到git当目录已经添加

git add directory 
git commit 

directory有文件,这也是我要添加,但只有其中的一些。但是,没有添加任何文件,现在我无法添加任何文件。

当我将存储库克隆到不同的位置时,我可以清楚地看到directory是空的。

当我尝试添加文件directory与git这样的:

git add directory/file 

我得到一个错误fatal: Path 'directory/file' is in submodule 'directory'

我如何添加这个文件?

回答

5

这不是一个空目录,这是一个子模块。关于如何处理它们,请阅读ProGit: Submodulesman git-submoule

尤其是:如果克隆与子模块的仓库,你应该初始化子模块过于

# git clone ... 
git submodule init 
git submodule update 
0

如前所述,这是一个子模块。空目录需要位于包含(父)回购协议中。子模块有它自己的克隆网址。

在克隆问题

git submodule update --init 

,你是好去(前提是你有访问子模块的克隆URL)

+1

我认为这是令人困惑的是指一个存储库作为“ master“,因为它在git中的主要分支的标准使用:)而且,在克隆的存储库中,您需要执行'git submodule update --init',否则会出现错误,指出子模块尚未初始化。 – 2011-05-23 09:22:19

+0

啊,我这样做往往不足以记住init;我敢打赌,这是'更新'会每次告诉我的东西:) – sehe 2011-05-23 09:25:06