我首先在现有存储库中遇到过此问题。作为测试,我对跟踪文件进行了更改。运行git status
会将文件显示为已修改。然后我做了git reset --hard HEAD
以撤消该更改,因为这是我做出的唯一更改。之后,运行git ls-files -v | grep '^[[:lower:]]'
会显示该文件的小写h
,表示设置了假定未更改的位。我以前没有自己设置这个位。
作为另一项测试,我做了以下工作:
/c/Source/git/test
$ echo "123" > a
/c/Source/git/test
$ echo "456" > b
/c/Source/git/test
$ git init
Initialized empty Git repository in C:/Source/git/test/.git/
/c/Source/git/test (master)
$ git add a b
/c/Source/git/test (master)
$ git commit -m "first"
[master (root-commit) c5bfb90] first
2 files changed, 2 insertions(+)
create mode 100644 a
create mode 100644 b
/c/Source/git/test (master)
$ git ls-files -v
h a
h b
/c/Source/git/test (master)
$
我不明白发生了什么。为什么git将这些文件标记为假设不变?
答案 0 :(得分:1)
结果我将core.ignoreStat
设置为true。 git config --global core.ignoreStat false
修复了它。不知道为什么我启用了ignoreStat ...我想我启用了它以试图加快分支名称自动完成。回想起来,这没有任何意义。