【发布时间】:2011-03-08 02:42:58
【问题描述】:
命令序列
mkdir 顶部目录
mkdir 另一个 git 目录
触摸文件C
触摸文件D
混帐添加。
git commit -m "子目录初始化"
光盘..
触摸文件A
触摸文件B
混帐添加。
git commit -m "top-dir init"
git ls 文件
// 现在我们可以看到顶级 git 没有跟踪 fileC 和 fileD //
git ls-files -o
// 这不会将 fileC 和 fileD 显示为未跟踪的文件//
我的问题是:我们如何使“git ls-files -o”显示子目录中未跟踪的文件?为什么 git 会这样,因为我希望 git ls-files 显示所有未跟踪的文件(即使它在另一个子目录 git 中)?
我知道我可以让顶级 git 使用“git add */.”来跟踪子目录文件......但我很想知道上述问题的原因。谢谢!
目录结构
topdir + +-- .git +-- fileA +-- fileB + another-git-directory +-- .git +-- fileC +-- fileD
更新(6 月 26 日)
我找到了这个帖子Unable to track files within Git submodules 和这个网址(cn)http://blog.ossxp.com/2010/01/425/,它解释了如何解决这个问题。
解决办法:
git rm --cached another-git-directory #没有尾部斜杠
git add another-git-directory/.
git提交
'git rm --cached path/to/sub-dir-or-sub-module' 会告诉 top-dir 不要将 sub-dir 视为子模块...我认为....
【问题讨论】:
标签: git git-submodules