【发布时间】:2015-08-26 10:33:01
【问题描述】:
我有一个非常旧的 git 存储库(大约六岁),并注意到我在 git status 输出中没有看到我对文件所做的更改。
我在有问题的特定文件上运行了命令:
$ git status Data/schema.sql
$
没有输出!这个文件从一开始就在 repo 中。此外,如果我将 repo 签出到另一个目录,文件(很奇怪)就会出现在那里。
我在git diff Data/schema.sql 和git log Data/schema.sql 看到了同样的情况。
通常,当发生这种情况时,这是一个gitignore 问题。但即使删除我的.gitignore 文件也不会改变这种行为。
什么可能导致这种行为?
【问题讨论】:
-
您确定 Data/schema.sql 已添加到您的阶段更改中吗? (又名 git add Data/schema.sql)
-
您是否用
skip-worktree或assume-unchanged位标记了文件? -
git ls-files -v | grep -i '^S'应该返回以这种方式标记的所有文件。 -
@Zeeker 它没有这样标记,但这确实帮助了我 - 它在列表中显示为“data/schema.sql”(没有大写“D”)。
git log data/schema.sql按预期工作。感谢您提供有关git ls-files的提示!现在,我该如何解决这个问题?ls-files显示一些条目为Data/blah.sql和一些为data/blah.sql -
@NickVolynkin 工作完美!谢谢你的帮助。如果您将其重写为答案,我很乐意接受。
标签: git