无法在git中添加文件夹

use*_*265 29 git

我添加了新文件夹(实际上我是从另一个 repo 克隆它的,然后忘记了),然后我在那里做了一些更改。另外,当我尝试执行 git add 时,我在其他地方做了很多更改

# 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:   protected/ext/SpecificFolder (modified content)
#
Run Code Online (Sandbox Code Playgroud)

然后我记得可能有 .git 文件夹(因为之前我在那里做过 git clone)。我去了那个文件夹并删除了不需要的文件(文件夹)和 .git 文件夹。我检查了 git status,没什么奇怪的。然后提交并签出到另一个分支,突然我发现这个文件夹没有添加到上次提交中。实际上添加了文件夹,但忽略了里面的文件。现在,即使我试图git add为该文件夹git status做任何事情,也没有发生任何变化,也不显示任何更改:(

我能做什么 ?

小智 40

Git 不跟踪目录;但只是其中的文件。

听起来您可能有一个忽略模式导致add什么都不做。您可以使用git status --ignored;查看被忽略的文件 然后可以跟踪它们git add --force protected/ext/SpecificFolder

  • 这个命令是救命稻草。没有它,我永远不会知道哪个目录被忽略了。 (3认同)

小智 9

Git 不跟踪 EMPTY 目录。如果您有一个带有多层子目录的项目,git 实际上会跟踪其中包含文件的目录。如果没有,那么它将是一个平面文件存储库。


小智 7

我碰巧做了这个用户所做的:在另一个里面添加一个现有的 git 存储库。

症状是 git 将该目录识别为文件,因此无法添加该目录的文件。

为了解决这个问题,我删除了.git文件夹中的文件夹,将该文件夹移动到另一个目录中,清除了索引,删除了我的 repo 中的目录,然后我能够正确添加目录。

这样做的寓意是:不要在另一个存储库中添加存储库。

  • 它也可以通过运行`git rm --cached path_to_submodule`来修复 (13认同)