Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么git不显示修改后的文件? 更改文件_Git_Msysgit - Fatal编程技术网

为什么git不显示修改后的文件? 更改文件

为什么git不显示修改后的文件? 更改文件,git,msysgit,Git,Msysgit,我修改磁盘上的一个文件,运行git status,表示没有任何更改。运行git update index--really refresh,修改后的文件就会显示出来 自从几个星期以来,我每天都会遇到好几次这个bug,我怀疑这是一个新的git4win bug,甚至可能与Windows文件系统有关。我从15年前git问世以来就一直在使用它,所以它不是“我忘了X”。在过去的两个小时里,我已经发生了四次错误。然后我甚至有一个小时的午休时间 $ git --version git version 2.23.

我修改磁盘上的一个文件,运行git status,表示没有任何更改。运行
git update index--really refresh
,修改后的文件就会显示出来

自从几个星期以来,我每天都会遇到好几次这个bug,我怀疑这是一个新的git4win bug,甚至可能与Windows文件系统有关。我从15年前git问世以来就一直在使用它,所以它不是“我忘了X”。在过去的两个小时里,我已经发生了四次错误。然后我甚至有一个小时的午休时间

$ git --version
git version 2.23.0.windows.1
坏理论 我最初认为它可能与我单独安装的Linux git的Windows子系统有关。在删除该安装并再次克隆我的所有存储库之后(第n次),我仍然会遇到此错误

修改添加的文件 git missing my modified files也适用于已添加但已修改的文件。这导致我提交并推送了很多我已经审阅并编译过的文件(无论是在IDE中还是在cli中),但它们的内容并不相同,这一点是肯定的。当我运行
updateindex--really refresh
时,我看到我推送了最初添加的文件,但没有推送我修改和编译的文件

它不是什么 这与git ignore无关,因为这发生在已经添加的文件上(参见上面的第二个场景)。它与WSL没有直接关系,因为我已经在那里卸载了git。我没有奇怪的git设置:

core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
credential.helper=manager
diff.astextplain.textconv=astextplain
user.name=Jonas Bystrom
user.email=...
core.autocrlf=true
core.pager=less -F -X
core.longpaths=true
alias.ca=commit -a
alias.nb=checkout -b
alias.quicklog=log --pretty=format:"%h %cr %cn %Cgreen%s%Creset"
alias.logdiff=log -p --stat
alias.search=log --source --all -p --decorate=full -G
push.default=upstream
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=ssh://...
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

我不知道该试什么。欢迎任何关于尝试的建议

直接原因是我的文件“假定未更改”,您可以通过

$ git ls-files -v pom.xml
h pom.xml
h
标志意味着git在查找修改过的文件时应该忽略它。修订人:

git update-index --no-assume-unchanged pom.xml

编辑2:我错误地向提交了一个错误,而根本原因是我的公司主目录(
H:\
)有一个.gitconfig,其中包含
core.ignoreStat=true
。我在bash.exe/msys(
C:\Users\xxx\
)中使用的.gitconfig没有。通过设置
core.ignoreStat=false进行修复

确保文件未被忽略?你可以用它来检查。@BagusTesa:我绝对100%肯定。在过去的几周里,这种情况已经发生了几十次。不是每次我更改一个文件都会发生这种情况,但肯定会超过十分之一。在百灵鸟上,你能试着将
fscache
设置为
false
?@LasseVågsætherKarlsen:刚刚做了,然后重新安装了msysgit。如果有帮助,请告诉你。如果是的话,你必须把它写下来作为答案。:)安装之后,一切似乎都好多了。甚至bash中的制表符完成以前也很慢,但现在它的行为与正常情况类似。它可能是fscache(或者可能是与某个东西上的-i/-p有关的实验性特性)。您为什么要使用msysgit,而不是?甚至有人说Git for windows已经取代了它。