9

我有一些文件/文件夹不会离开 Git 暂存区?

# On branch master
# Changed but not updated:
#   (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:   JavaScript/Stand.ard.iz.er (modified content, untracked content)
#   modified:   Site (untracked content)
#   modified:   Template Archives/Template (modified content, untracked content)
#   modified:   Template Archives/Template_Git (modified content, untracked content)
#

我已经尝试了一切来提交这些“修改过的”文件,但没有运气?

我试过了...

git add .
git add *
git add -u
git add {actual full directory path}

......但它都不起作用。

有任何想法吗?

谢谢。

4

2 回答 2

14

这些可能是submodules,在这种情况下,它们的状态将从父 repo 的状态中显示。

除非,也就是说,您使用git status--ignore-submodules[=<when>]选项:

查找更改时忽略对子模块的更改。
<when>可以是“ none”、“ untracked”、“ dirty”或“ all”,这是默认值。

  • 使用 " none" 将在子模块包含未跟踪或已修改的文件或它HEAD与超级项目中记录的提交不同时将其视为已修改,并且可用于覆盖 或 中忽略选项的任何git-config设置gitmodules
  • untracked使用“”时,子模块仅包含未跟踪的内容时不被认为是脏的(但仍会扫描它们以查找修改的内容)。
  • 使用“ dirty”会忽略对子模块工作树的所有更改,只显示对存储在超级项目中的提交的更改(这是 1.7.0 之前的行为)。
  • 使用“ all”隐藏对子模块的所有更改(并在config option status.submodulesummary设置 时抑制子模块摘要的输出)。

在任何情况下,您都需要在子模块本身中添加和提交,然后才能上一级(在父仓库级别),并查看干净状态。

于 2011-03-03T20:57:22.023 回答
11

如果您将一些新文件夹复制到您的项目中,并且其中已经有一个 .git 文件夹,则可能会发生这种情况。所以它就像你的主存储库中的一个子存储库。解决方案是在新复制的子文件夹中删除这个 .git 文件夹。

于 2011-03-08T02:12:54.697 回答