修改过的文件出现在Git但没有更新的问题?

时间:2011-03-03 20:49:59

标签: git git-submodules staging

我有一些文件/文件夹只是不会离开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}

......但没有一个有效。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:14)

那些可能是子模块,在这种情况下,它们的状态将从父仓库的状态显示。

除非您使用git status--ignore-submodules[=<when>]选项:

  

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

     
      
  • 使用“ none ”时,如果子模块包含未跟踪或修改的文件或其HEAD与超级项目中记录的提交不同且可以使用,则会考虑修改子模块覆盖git-configgitmodules中忽略选项的任何设置。
  •   
  • 当使用“ untracked ”时,如果子模块仅包含未跟踪的内容(但仍会扫描修改后的内容),则子模块不会被视为脏。
  •   
  • 使用“ dirty ”忽略对子模块工作树的所有更改,仅显示存储在超级项目中的提交的更改(这是1.7.0之前的行为)。
  •   
  • 使用“ all ”会隐藏对子模块的所有更改(并在设置 config option status.submodulesummary 时禁止子模块摘要的输出。)< / LI>   

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

答案 1 :(得分:11)

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