无法在 git 中添加文件夹

无法在 git 中添加文件夹

我添加了新文件夹(实际上是从另一个仓库克隆的,但忘了),然后在那里做了一些更改。此外,当我尝试执行 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)
#

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

我能做些什么 ?

答案1

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

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

答案2

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

答案3

我碰巧做了与该用户完全相同的事情:在另一个存储库中添加一个现有的 git 存储库。

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

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

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

答案4

尝试在该目录中添加一个文件。

$ git add my-dir/index.html

如果您看到如下输出:

The following paths are ignored by one of your .gitignore files:
my-dir/index.html
Use -f if you really want to add them.
fatal: no files added

您的某个 gitignore 中有一条规则阻止您添加该目录。

相关内容