当我git status
时,这就是我所看到的:
$ git status
# On branch master
# Your branch is ahead of 'github/master' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: octopress (modified content, untracked content)
#
no changes added to commit (use "git add" and/or "git commit -a")
当我git rm -rf octopress
时,这就是我所看到的:
$ git rm -rf octopress
error: submodule 'octopress' (or one of its nested submodules) uses a .git directory
(use 'rm -rf' if you really want to remove it including all of its history)
思想?
答案 0 :(得分:4)
此错误消息也让我感到困惑,但它试图说的是您应该使用rm -rf
,不 git rm -rf
:
(use 'rm -rf' if you really want to remove it including all of its history)
所以,你应该能够做到这一点:
$ rm -rf octopress
$ git rm octopress
答案 1 :(得分:0)
如果你明显地从git status获得干净的输出,你可以简单地,
git status --ignore-submodules
否则你需要明确处理子模块。在我们处理子模块之前,请注意git子模块不应该有.git
目录 1 。你可以使用旧版本的git吗?
继续前进。 Git告诉你它是octopress
子模块,
# modified: octopress (modified content, untracked content)
要解决此问题,您需要进入octopress
子模块和
.gitignore
未跟踪的内容或者,使用更大的锤子,正如您在问题中建议的那样,您可以删除子模块的本地结帐,
$ git submodule deinit --force octopress
适用于git 1.8.3及以后
当指定--force
时,子模块的工作树即使包含本地修改也将被删除。
按git rm octopress
执行此操作以从存储库中删除子模块。
<子> 1 看看这个补丁,
将子模块的git-dir移动到$ GIT_DIR / modules / [name_of_submodule] of 超级项目。这是朝着能够删除子模块迈出的一步 目录没有丢失.git目录中的信息 因为它现在存储在子模块工作树之外。
http://git.661346.n2.nabble.com/PATCH-v5-0-2-submodule-move-gitdir-into-superproject-td6692559.html